/ / Регулиране на прозрачност (alpha) на статични линии, не само прозрачност на интервала на доверие - r, ggplot2, прозрачност, алфа

Коригирайте прозрачността (алфа) на линиите stat_smooth, а не само прозрачността на доверителния интервал - r, ggplot2, прозрачността, алфа

Използвайки stat_smooth () на ggplot2, аз съм любопитен какможе да се регулира прозрачността на генерираната регресионна линия. Използвайки geom_points () или geom_line (), обикновено се задава стойност за "alpha", което показва процента на прозрачност. С stat_smooth (), alpha задава прозрачността на доверителния интервал (в моята проба по-долу, изключена - se = FALSE).

Не мога да намеря начин да направим регресионната линия (ите) по-ниска от 1.

Вашият съвет би бил чудесен.

Примерни кодове

 library(reshape2)
df <- data.frame(x = 1:300)
df$y1 <-  0.5*(1/df$x + 0.1*(df$x-1)/df$x + rnorm(300,0,0.015))
df$y2 <-  0.5*(1/df$x + 0.3*(df$x-1)/df$x + rnorm(300,0,0.015))
df$y3 <-  0.5*(1/df$x + 0.6*(df$x-1)/df$x + rnorm(300,0,0.015))
df <- melt(df, id = 1)

ggplot(df, aes(x=x, y=value, color=variable)) +
geom_point(size=2) +
stat_smooth(method = "lm", formula = y ~ 0 + I(1/x) + I((x-1)/x),
se = FALSE,
size = 1.5,
alpha = 0.5)

въведете описанието на изображението тук

Отговори:

43 за отговор № 1

За да зададете алфа стойност само за линията, която трябва да замените stat_smooth() с geom_line() и след това вътре geom_line() използвайте същите аргументи като в stat_smooth() и добавете допълнително stat="smooth".

ggplot(df, aes(x=x, y=value, color=variable)) +
geom_point(size=2) +
geom_line(stat="smooth",method = "lm", formula = y ~ 0 + I(1/x) + I((x-1)/x),
size = 1.5,
linetype ="dashed",
alpha = 0.5)

въведете описанието на изображението тук


3 за отговор № 2

Като алтернатива, която е малко по-интуитивна - може би създадена от този отговор - можете да използвате stat_smooth (geom="line"), Пликът на SE изчезва, въпреки че можете да го добавите обратно с нещо като:

geom_smooth (alpha=0.3, size=0, span=0.5) stat_smooth (geom="line", alpha=0.3, size=3, span=0.5) +

Първият ред създава SE. без линия (0-ширина), а втората линия добавя линията над нея. Тази (текуща) документация споменава това stat_smooth е за нестандартни geoms (например "линия").