2014-01-15 3 views
0

У меня есть четыре объекта ggplot2, которые должны быть расположены в макете 2 на 2, и я ссылаюсь на эту функцию here: функция multiplot работает хорошо, если каждый из моих четырех участки предоставляются. Например:глобальная ось x/y на нескольких фигурах ggplot2

multiplot(p1, p2, p3, p4, cols=2, layout=matrix(seq(1,4), nr=2, byrow=TRUE)) 

Однако, в каждом из сюжета, я подавляю х- и у-метки осей, поскольку они идентичны и я надеюсь поставить глобальную подпись оси Х и глобальный Y- оси на большой панели 2-на-2. Есть ли способ изменить функцию multiplot для достижения этой цели?

Существует связанный пост here, но он, кажется, устарел. Он также обеспечивает воспроизводимый пример. Спасибо!

Update

Благодаря Скотт для решения. Еще один вопрос, когда я добавляю метки осей: как я могу контролировать край всей фигуры? Я попытался использовать plot.margin в theme, но проблема с тем, чтобы не показывать полные ярлыки, остается. Пожалуйста, смотрите прилагаемый скриншот ниже:

enter image description here

ответ

2

Вы можете использовать grid.text добавить ярлыки, где вы хотите их, передав в функцию multiplot. Например:

https://gist.github.com/sckott/8444444

И вы можете легко добавить в качестве параметра для multiplot пройти в размещении наклеек.

Извините, есть много кода, поэтому все это в стиле ...

+0

большое вам спасибо! еще один вопрос о марже. Пожалуйста, см. Мое обновление в OP :) – alittleboy

+0

Это должно быть просто размещение меток через 'grid.text'. Попробуйте обновленную функцию в моем стиле. Я добавил параметры для x и y позиций каждой метки – sckott

Смежные вопросы