R使用geom_smooth绘制拟合线报stat_smooth() invalid 'x' type错误如何解决
报错原因及解决方案
报错原因
- 直接触发原因:代码中
geom_smooth的se参数传入了带引号的字符串"FALSE",该参数仅接受布尔逻辑值TRUE/FALSE,字符型参数在后续逻辑运算中触发类型不匹配报错。 - 次要可能原因:若修正
se参数后仍报错,需检查d_gdp、d_emp两个变量的数据类型,若为因子、字符类型,线性回归拟合时也会触发类型错误。散点图能正常渲染不代表变量一定是数值型,部分存储为因子/字符类的数字内容仍可被识别为坐标渲染散点。
解决方案
优先修复(对应首要原因)
删除se参数值的引号,修改后代码如下:
df %>% ggplot(aes(y = d_emp, x=d_gdp)) + geom_point() + geom_smooth(method = "lm", se = FALSE)
二次修复(对应次要原因)
如果修改se参数后仍报错,先将两个绘图变量强制转换为数值型再绘图:
# 转换变量为数值型 library(dplyr) df <- df %>% mutate( d_gdp = as.numeric(as.character(d_gdp)), d_emp = as.numeric(as.character(d_emp)) ) # 绘制带拟合线的散点图 df %>% ggplot(aes(y = d_emp, x=d_gdp)) + geom_point() + geom_smooth(method = "lm", se = FALSE)
内容的提问来源于stack exchange,提问作者entropy
相关产品推荐
相关产品推荐

