2012-05-31 6 views
53

Есть ли простой способ увеличить пространство между заголовком сюжета и областью графика под ним (поле с данными). Точно так же я предпочел бы иметь некоторое пространство между заголовком оси и метками оси.ggplot2 площадь участка поля?

Другими словами, есть ли способ «переместить заголовок немного вверх, заголовок оси y немного слева, а заголовок оси x немного вниз»?

+0

Вы всегда можете вставить некоторые символы '' \ n "' в заголовки, чтобы создать новые строки. – joran

ответ

72

Вы можете настроить сюжетные поля с plot.margin в theme(), а затем переместить метки осей и название с vjust аргументом element_text(). Например:

library(ggplot2) 
library(grid) 
qplot(rnorm(100)) + 
    ggtitle("Title") + 
    theme(axis.title.x=element_text(vjust=-2)) + 
    theme(axis.title.y=element_text(angle=90, vjust=-0.5)) + 
    theme(plot.title=element_text(size=15, vjust=3)) + 
    theme(plot.margin = unit(c(1,1,1,1), "cm")) 

даст вам что-то вроде этого:

enter image description here

Если вы хотите получить подробную информацию о различных theme() параметров и их аргументов, вы можете просто ввести ?theme в R строке.

+4

Спасибо! Я не был уверен, что предоставить 'grid :: units', чтобы сделать эту работу аргументом' plot.margin'. Оказывается, вам нужно указать число-4 в 'units'. Слишком плохо, аргумент 'x' для' units' не перерабатывается каким-то образом. Кроме того, вы, вероятно, знаете это уже, но стоит отметить/обновить, что 'opts' теперь устарел в последней версии ggplot2 (0.9.2+), заменен на' theme', а 'theme_text 'теперь заменен на' element_text' , –

+8

Порядок ребер для plot.margin - это единица (c (верхняя, правая, нижняя, левая), единицы), если кто-то еще хочет сэкономить время, глядя вверх. – mightypile

+0

@mightypile Это противоположно от основания R! Г! Зачем???!??! –

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