2016-09-21 2 views
0

Я использую grid.arrange(), чтобы разместить два участка в одном. Однако один из графиков создается с использованием facet_grid и, следовательно, имеет дополнительный текст с правой стороны. Поэтому весы не идеально совпадают (см рисунок ниже)GGplot и gridExtra с одним сюжетом facet_grid - как правильно подобрать весы?

picture of labels not being perfectly on top of each other

Я хочу, чтобы весы, чтобы быть совершенно выше или друг под другом, 10 выше 10, 9 выше 9 и так далее. Может ли кто-нибудь помочь в достижении этого? Должен ли я удалить текст из facet_grid? Если да, то как я могу это сделать?

EDIT Exampe для иллюстрации мой вопрос

g1 <- ggplot() + 
    geom_point(data = neu1, aes(x = AGE, y = costs, 
           colour = Type, shape = Type), 
      size = 3)+ 
    scale_x_continuous(limits = c(-1,10), breaks = seq(0,10,1))+ 
    ylab("Costs") 

g2 <- ggplot() + 
    geom_point(data = neu1, aes(x = AGE, y = costs, 
           colour = Type, shape = Type), 
      size = 3)+ 
    scale_x_continuous(limits = c(-1,10), breaks = seq(0,10,1))+ 
    ylab("Costs")+ 
    facet_grid(Type ~.) 
grid.arrange(g1,g2, nrow = 2) 

Это дает следующий результат, как видно на картинке выше, в этом примере два участка не делают слишком много смысла, это только для иллюстрации.

Как вы можете видеть, линии сетки для каждого номера не находятся друг на друге, например, AGE 10 на верхнем участке находится дальше вправо, чем на нижнем участке. Еще раз спасибо всем!

+1

Пакет 'cowplot' может помочь здесь. Он имеет инструменты для выравнивания по оси. Если нет, вы можете отредактировать директиву grobs после 'ggplot_build()'. – hrbrmstr

+0

Благодарим вас за подсказку о ковровом покрытии. Я раньше этого не использовал. не могли бы вы объяснить немного больше о команде ggplot_build()? Что вы имеете в виду, редактируя грызуны? – rashid

+0

Можете ли вы привести небольшой пример, который можно использовать для демонстрации различных концепций? –

ответ

0

Вы должны убрать метки фасет с аргументами «strip» в теме().

p + theme(strip.text = element_blank(), 
    strip.background = element_blank()) 

Где p - участок фасции с оригинального сообщения.

+0

Эй, спасибо большое. Я попробовал, знаю, могу ли я также перемещать метки в другое место, например. над сюжетом? – rashid