У меня есть некоторые данные, для которых на одном уровне фактора существует значительная корреляция. На другом уровне их нет. Построение этих бок о бок просто. Добавление строки к обоим из них с помощью stat_smooth, также просто. Тем не менее, я не хочу, чтобы строка или ее заполнение отображались на одном из двух фасетов. Есть ли простой способ сделать это? Возможно, указав пустой цвет для заливки и цвета одной из строк?
Добавление stat_smooth только в 1 грань в ggplot2
Ответ 1
Не думайте о том, чтобы выбрать грань, подумайте о поставке подмножества ваших данных в stat_smooth:
ggplot(df, aes(x, y)) +
geom_point() +
geom_smooth(data = subset(df, z =="a")) +
facet_wrap(~ z)
Ответ 2
Конечно, я позже ответил на собственный вопрос. Хотя, есть ли меньше способов взломать это? Интересно, можно ли даже поместить различные функции в разные панели.
Один из методов заключается в использовании + scale_fill_manual и scale_colour_manual. Они позволяют указать, какие цвета будут использоваться. Итак, в этом случае, скажем, у вас есть
a<-qplot(x, y, facets=~z)+stat_smooth(method="lm", aes(colour=z, fill=z))
Вы можете указать цвета для заливки и цвета, используя следующее. Обратите внимание, что второй цвет ясен, поскольку он использует шестнадцатеричное значение с последними двумя числами, представляющими прозрачность. Итак, 00 = ясно.
a+stat_fill_manual(values=c("grey", "#11111100"))+scale_colour_manual(values=c("blue", "#11111100"))