В некоторых журналах требуется, чтобы на рисунках с несколькими графиками каждый из графиков обозначался буквами. Я пытаюсь сделать то же самое с facet_wrap
в ggplot2
, потому что я организовал данные таким образом, что ковариаты для всех моих объясняющих переменных находятся в одном столбце, а переменные группировки для ковариат находятся в другом столбце.
Я следовал инструкциям здесь , чтобы дать эффект, что метка оси X различна для каждого графика (когда это действительно панель).
Но мне все еще нужно метки для каждого графика (столбец figure.letters
) на рисунке, предпочтительно в верхнем левом углу. Я попытался добавить его в формулу facet_wrap
, поэтому теперь на каждом графике есть две полосы.
require(ggplot2)
my.df <- data.frame(
param = rep(c('Distance (km)', 'Energy (j)', 'Girth (m)', 'Height (cm)', 'Incline (degrees)'), each = 20),
explanatory = rnorm(100, 0, 1),
response = rnorm(100, 0, 1),
figure.letter = rep(LETTERS[1:5], each = 20)
)
ggplot(my.df, aes(x = explanatory, y = response)) +
geom_point() +
facet_wrap(. ~ param + figure.letter, strip.position = 'bottom') +
theme_bw() +
theme(
strip.placement = 'bottom',
strip.background = element_blank()
)
Есть много действительно хороших ответов здесь , но они больше ориентированы на перемещение всех полосовых панелей вверх, а затем выравнивание текста по левому краю. Я пытаюсь разделить две панели с полосами так, чтобы панель с цифрами и буквами располагалась сверху и выровнялась по левому краю, а панель с полосами param
остается внизу.
Я также надеюсь не писать код для нескольких графиков, а затем используйте patchwork
, чтобы получить метки рисунка.
Есть ли способ взять панель полосы для figure.letter
и переместить ее наверх, сохраняя панель полосы для param
внизу?