r语言 - geom_smooth lm 线未绘制 - ggplot2



我正在尝试使用此代码绘制lm

df <- data.frame(c1=factor(c(1,1,1,1,2,2,2,2,3,3,3,3)),c2=c(65,42,56,75,43,43,21,23,12,12,21,11))
p <- ggplot(aes(x=c1,y=c2),data=df)
p + geom_point() + geom_smooth(method="lm")

但是没有显示lm线。我错过了什么吗?

原因是c1是一个factor。 将其转换为numeric将解决问题

library(dplyr)
library(ggplot2)
df %>%
mutate(c1 = as.numeric(as.character(c1)) %>%
ggplot(aes(x = c1, y = c2)) +
geom_point() + 
geom_smooth(method="lm")          

最新更新