2013-08-06 16 views
11

Geçici çözüm olarak vjust kullandım ve kabul edilebilir mesafeyi deneme ve hata ile detaylandırıyorum. Ancak bu bazen çok zaman alıcıdır ve yazı tipi boyutu ve eksen ölçeği ile değiştirir.geom_text öğesini ggplot2 içinde bir geom_text ile hizalayın

Örnekte bulunan metni otomatik olarak hizalamak için daha iyi bir yöntem var mı?

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

Hizalamanın nasıl olmasını istersiniz? vjust = 0 ve vjust = 1 olması gerekenleri yapıyor gibi görünüyor, bu aralığın dışındaki değerler her zaman daha olağanüstü. – baptiste

+0

Bilgisayarın yazı tipi boyutunu artırmasını ve metin kutusunu doğru mesafeye yerleştirmesini istiyorum. Böylece kullanıcı vjust değerleri ile oynamak zorunda kalmayacak. –

+1

Çizelgeli etiketlerin otomatik olarak basit olacağını düşünürsek, otomatik olarak konumlandırma etiketlerinin zor olacağını düşünüyorum. [Directlabels'] (http://cran.r-project.org/web/packages/directlabels/index.html) paketine baktınız mı? – SlowLearner

cevap

15

bir satır etiketlerinin durum için başka bir çözüm/önce sonra bir satır sonu eklemek ve = 0.5 varsayılan vjust tutmak olacaktır.

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

Kolay ve etkili. Bunu sevdim! – fdetsch

+1

Ayrıca, birden çok kopyanın oluşturulmasını önlemek için "geom_text" yerine "annotate" kullanılmalıdır, bkz. Https://stackoverflow.com/questions/10952832/ggplot2-is-there-a-fix-for-jagged-poor- kaliteli metin üretilen-geom-metin ile – Valentas

İlgili konular