如何使用 ggplot 填充回归线下方的图
How to fill a plot below a regression line using ggplot
我有一个带有回归线的散点图,我想用灰色填充回归线下方的 space。
#my data
p2 = as.data.frame(cbind(Population = c(1432132, 2582830,1628701, 2278906,476179), Borough =c("BRONX", "BROOKLYN", "MANHATTEN", "QUEENS", "STATEN ISLAND"), count = c(341, 1427, 1092, 700, 39)))
p2$Population = as.numeric(as.character(p2$Population))
p2$count = as.numeric(as.character(p2$count))
fit = lm(p2$count ~ p2$Population , data = p2)
#the plot
ggplot(p2, aes(x=Population, y=count, color = Borough)) +
geom_point() +
geom_text(label=p2$Borough, hjust = -0.1) +
geom_smooth(color = "black", method='lm', formula= y~x, se = FALSE) +
theme_classic()
到目前为止,我已经尝试使用 geom_area(aes(fill=)) 但不是使用回归作为数据,而是将我的数据点连接到回归线。无论如何指定填充回归线而不是数据?
这应该可以解决问题:
ggplot(p2, aes(x=Population, y=count)) +
geom_point() +
geom_text(label=p2$Borough, hjust = -0.1) +
geom_smooth(color = "black", method='lm', formula= y~x, se = F) +
geom_ribbon(aes(ymin = 0,ymax = predict(lm(count ~ Population))),
alpha = 0.3,fill = 'green')+
theme_classic()
我有一个带有回归线的散点图,我想用灰色填充回归线下方的 space。
#my data
p2 = as.data.frame(cbind(Population = c(1432132, 2582830,1628701, 2278906,476179), Borough =c("BRONX", "BROOKLYN", "MANHATTEN", "QUEENS", "STATEN ISLAND"), count = c(341, 1427, 1092, 700, 39)))
p2$Population = as.numeric(as.character(p2$Population))
p2$count = as.numeric(as.character(p2$count))
fit = lm(p2$count ~ p2$Population , data = p2)
#the plot
ggplot(p2, aes(x=Population, y=count, color = Borough)) +
geom_point() +
geom_text(label=p2$Borough, hjust = -0.1) +
geom_smooth(color = "black", method='lm', formula= y~x, se = FALSE) +
theme_classic()
到目前为止,我已经尝试使用 geom_area(aes(fill=)) 但不是使用回归作为数据,而是将我的数据点连接到回归线。无论如何指定填充回归线而不是数据?
这应该可以解决问题:
ggplot(p2, aes(x=Population, y=count)) +
geom_point() +
geom_text(label=p2$Borough, hjust = -0.1) +
geom_smooth(color = "black", method='lm', formula= y~x, se = F) +
geom_ribbon(aes(ymin = 0,ymax = predict(lm(count ~ Population))),
alpha = 0.3,fill = 'green')+
theme_classic()