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