2015-03-24 2 views
5

Я ссылаюсь на этот вопрос SO 2 года назад, с ggplot: Adjust Transparency (alpha) of stat_smooth lines, not just transparency of Confidence IntervalКонтроль ровнее и доверительный интервал

Первый метод, предложенный позволяет установить альфа-прозрачность только доверительный интервал:

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + stat_smooth(method = "lm", se=TRUE, alpha=1.0) 

enter image description here

Второй метод позволяет установить альфа-прозрачность для самой линии, но вы свободно доверительный интервал в Тем временем, даже с se=TRUE:

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + geom_line(stat='smooth', method = "lm", se=TRUE, alpha=0.3) 

enter image description here

Мой вопрос: Как контролировать прозрачность как сглаживающий линии и доверительного интервала?

ответ

6

Это вычисляет модель в два раза. Но обычно это не должно быть проблемой производительности.

ggplot(head(airquality, 60), aes(x=Day, y=Temp, color=factor(Month))) + 
    geom_point() + 
    geom_ribbon(stat='smooth', method = "lm", se=TRUE, alpha=0.1, 
       aes(color = NULL, group = factor(Month))) + 
    geom_line(stat='smooth', method = "lm", alpha=0.3) 

resulting plot

+0

спасибо, что работает отлично! Я полагаю, что нет прямого метода для этого. NB: Я думаю, что 'se = TRUE' в geom_ribbon можно удалить? – agenis

+0

@agenis Вы знаете о прямом методе этого с 2017 года? Кажется противоречащим, чтобы пройти обходной путь – Dan

+0

@ Дань вы можете опубликовать новый ответ? – agenis

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