2013-08-06 2 views
11

Я использовал vjust как обходное решение и разработал допустимое расстояние при попытке и ошибке. Но иногда это занимает много времени и изменяется с размером шрифта и шкалой осей.Выровнять geom_text до geom_vline в ggplot2

Есть ли лучший способ выровнять текст в примере автоматически?

library(ggplot2) 

ggplot(data=mtcars, aes(x=hp, y=mpg))+ 
geom_point()+ 
theme_bw() + 
    geom_vline(xintercept=200, colour="grey") + 
    geom_text(aes(x=200, label="the strong cars", y=20), colour="blue", angle=90, vjust = 1.2, text=element_text(size=11))+ 
    geom_text(aes(x=200, label="the weak cars", y=20), colour="red", angle=90, vjust = -1, text=element_text(size=11)) 

ggsave(filename="geomline.png", width=5.5, height=2*3, dpi=300) 

enter image description here

+0

как вы хотите, чтобы выравнивание было? vjust = 0 и vjust = 1, похоже, делают то, что они предполагают, значения вне этого диапазона всегда более эксцентричны. – baptiste

+0

Я хочу, чтобы компьютер выглядел шрифтами и помещал текстовое поле на правильном расстоянии. Таким образом, пользователю не придется играть со значениями vjust. –

+1

Я думаю, что позиционирование этикеток будет автоматически, даже если сюжет всегда будет простым. Вы посмотрели пакет ['directlabels'] (http://cran.r-project.org/web/packages/directlabels/index.html)? – SlowLearner

ответ

15

Другое решение для случая одной линии меток можно было бы добавить разрыв строки перед/после и сохранить vjust по умолчанию = 0.5.

ggplot(data=mtcars, aes(x=hp, y=mpg)) + 
    geom_point() + 
    theme_bw() + 
    geom_vline(xintercept=200, colour="grey") + 
    geom_text(aes(x=200, label="\nthe strong cars", y=20), colour="blue", angle=90, text=element_text(size=11)) + 
    geom_text(aes(x=200, label="the weak cars\n", y=20), colour="red", angle=90, text=element_text(size=11)) 
+0

Легко и эффективно. Мне нравится это! – fdetsch

+1

Кроме того, чтобы избежать рендеринга нескольких копий, вместо 'geom_text' следует использовать' annotate', см. Https://stackoverflow.com/questions/10952832/ggplot2-is-there-a-fix-for-jagged-poor- качество текст производится, по-геый-текст – Valentas

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