2016-03-18 4 views
5

вы можете установить положение легенды внутри области черчения, какggplot2: изменить strip.text положения в facet_grid участка

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

Есть так же простой способ изменить положение текста полосы (или уровни фактора в сгруппированных участков)

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/)

В решетке я бы использовал что-то вроде strip.text = levels (dat $ Y) [panel.number()] и panel.text (...), но может быть и более чистый путь ...

ТНХ, Кристоф

+2

вы могли бы просто использовать geom_text, чтобы добавить текст, где вы хотите на вашем графике – MLavoie

+0

MLavoie да, ТНХ, но как я могу получить strip.text и площади участка (в решетке что-то вроде panel.number () и current.panel.limits()) ... Мне нравится автоматизировать это и не нужно для этого точного примера, где я знаю strip.text и позиции. – ckluss

+1

Если вы ограничены лимитом «scale_x_continuous», вы можете предсказать, где текст упадет, и в зависимости от количества символов, которое вы можете компенсировать, чтобы отрегулировать горизонтальное положение. –

ответ

4

Вот один подход:

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()) 

Однако это не перемещение strip.text, скорее, это добавление geom_text элемента и выключая strip.background и strip.text, но я думаю, что это achiev желаемый результат.

Plot

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