Добавление stat_smooth только к 1 фасету в ggplot2

StackOverflow https://stackoverflow.com/questions/1570379

  •  21-09-2019
  •  | 
  •  

Вопрос

У меня есть некоторые данные, для которых на одном уровне фактора существует значительная корреляция.На другом уровне его нет.Построить их параллельно очень просто.Добавление строки к ним обоим с помощью 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"))
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top