2016-03-18 15 views
5

można ustawić pozycję legendy wewnątrz obszaru kreślenia, jakggplot2: zmiana strip.text pozycję w facet_grid działki

... + theme(legend.justification=c(1,0), legend.position=c(1,0)) 

Czy istnieje podobnie łatwy sposób zmienić położenie tekstu (taśmy lub poziomy czynnikiem zgrupowane działek)

library(reshape2); library(ggplot2) 

sp <- ggplot(tips, aes(x=total_bill, y=tip/total_bill)) + geom_point() + 
    facet_grid(. ~ sex) 

sp 

enter image description here

(http://www.cookbook-r.com/Graphs/Facets_%28ggplot2%29/)

w kratownicy chciałbym użyć czegoś takiego jak strip.text = levels (dat $ Y) [panel.number()] i panel.text (...), ale może być też lepszy sposób ...

thx, Christof

+2

można po prostu użyć geom_text dodać tekst gdziekolwiek chcesz na wykresie – MLavoie

+0

MLavoie tak, thx, ale w jaki sposób mogę uzyskać strip.text i działki (w siatkowej coś podobnego panel.number () i current.panel.limits()) ... lubię to zautomatyzować i nie potrzebuję tego dla tego dokładnego przykładu, gdzie znam strip.text i pozycje. – ckluss

+1

W przypadku ręcznego ustawiania limitów "scale_x_continuous" można przewidzieć, gdzie spadnie tekst, i na podstawie liczby znaków, które można zrekompensować, aby dostosować pozycję poziomą. –

Odpowiedz

4

Oto jeden sposób:

ggplot(tips, aes(x = total_bill, y = tip/total_bill)) + 
    geom_point() + 
    facet_grid(. ~ sex) + 
    geom_text(aes(label = sex), x = Inf, y = Inf, hjust = 1.5, vjust = 1.5) + 
    theme(strip.background = element_blank(), 
     strip.text = element_blank()) 

jednak nie jest to przeniesienie strip.text raczej to dodanie elementu geom_text i wyłączania strip.background i strip.text, ale myślę, że achiev es pożądanego rezultatu.

Plot