Добавить шаблоны для боксов в т - PullRequest
1 голос
/ 13 февраля 2020

Доброе утро,

Я ищу способ добавить рисунки на свои графические поля. Я видел, что некоторые решения уже существуют ( здесь для примера ), но я также нашел более простой способ сделать это ( здесь ). Однако мне не удается воспроизвести приведенный здесь пример.

structure(list(day = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L), .Label = c("d0", 
"db"), class = "factor"), name = structure(1:20, .Label = c("x1", 
"x2", "x3", "x4", "x5", 
"x6", "x7", "x8", "x9", 
"x10", "x11", "x12", "x13", 
"x14", "x15", "x16", "x17", 
"x18", "x19", "x20", "x21", "x22", 
"x23", "x24", "x25", "x26", 
"x27", "x28", "x29", "x30", 
"x31", "x32", "x33", "x34", 
"x35", "x36", "x37", "x38", "x39"
), class = "factor"), mean = c(36.6, 36.2636363636364, 36.9285714285714, 
35.325, 37.0692307692308, 37.2357142857143, 36.85, 36.0153846153846, 
35.6384615384615, 36.76, 36.8538461538462, 35.4307692307692, 
35.3, 36.8153846153846, 36.1666666666667, 37.775, 37.3733333333333, 
36.4666666666667, 36.6071428571429, 36.6)), row.names = c(NA, 
-20L), class = c("grouped_df", "tbl_df", "tbl", "data.frame"), vars = "day", drop = TRUE, indices = list(
    0:19), group_sizes = 20L, biggest_group_size = 20L, labels = structure(list(
    day = structure(1L, .Label = c("d0", "db"), class = "factor")), row.names = c(NA, 
-1L), class = "data.frame", vars = "day", drop = TRUE))

Пока у меня есть следующие строки:

patternboxplot(data=temp_mean, x=temp_mean$day, y = temp_mean$mean, group = NULL,
                  pattern.type = c('nwlines', 'blank'), pattern.line.size = c(6,1), 
                  pattern.color = c('black', 'white'),
                  background.color = c('white', 'white'),
                  frame.color = c('black', 'black'),
                  density=c(6,1))

При запуске я получаю следующую ошибку:

"Ошибка в imagetodf2 (readPNG (paste (location, "/", pattern.type [i], ".png",: объект 'xmin' не найден ".

Если у кого-то есть подсказка об этом, я Я буду рад услышать об этом!

Заранее спасибо.

РЕДАКТИРОВАТЬ: Я хотел бы построить следующую фигуру (полученную здесь, используя тот же набор данных и пакет gglpot2)

enter image description here

Ответы [ 2 ]

1 голос
/ 13 февраля 2020

Имитируйте что-то похожее на ваши данные:

temp_mean = data.frame(
  day = sample(c("d0","db"),100,replace=TRUE),
  mean = rnorm(100)
)

Я пытался, но у меня не получалось, чтобы они имели разные заливки, с группой на разрыв по оси x. Вы можете попробовать что-то вроде ниже (возможно, не идеально):

 patternboxplot(data=temp_mean, x=1, y = temp_mean$mean, group = temp_mean$day,
               pattern.type = c('nwlines', 'blank'), pattern.line.size = c(6,1), 
               pattern.color = c('black', 'white'),
               background.color = c('white', 'white'),
               frame.color = c('black', 'black'),
               density=c(6,1),
               legend.h=30,legend.w=0.05,legend.x.pos=1.075, 
               legend.y.pos=0.88, 
               legend.pixel=10)

enter image description here

0 голосов
/ 13 февраля 2020

Это не приведет к sh, однако вам придется поэкспериментировать с шаблоном по своему вкусу.

patternboxplot(data=temp_mean, x=factor(temp_mean$day), y = as.numeric(temp_mean$mean),group=NULL,
               pattern.type = c('nwlines'), pattern.line.size = c(6,1), 
               pattern.color = c('black'),
               background.color = c('white'),
               frame.color = c('black'),
               density=c(6,1))
...