R语言谷物出口数据集子集绘制回归线 未知列total报错解决
报错原因
- 管道处理后生成的包含
total字段的汇总数据没有赋值给变量,你后续调用的还是未处理的原始export_data,自然不存在total列 - 不要混用ggplot绘图语法和base R的
abline()函数,ggplot中添加回归线需要调用内置的图层函数实现
修正后可运行代码
# 先处理数据并保存到新变量 plot_data <- export_data |> group_by(year, Commodity, Destinations) |> filter(Commodity %in% c("Barley", "Oats")) |> summarize(total = sum(VALUE), .groups = "drop") |> filter(Destinations == "Total exports, all destinations") # 绘图加两条回归线 ggplot(plot_data, aes(x = year, y = total)) + # 散点按商品分类着色 geom_point(aes(color = Commodity)) + # 普通单回归线(整体拟合,不按商品分组) geom_smooth(method = "lm", formula = y ~ x, se = FALSE, color = "yellow") + # 强制零截距的回归线,formula加+0即可实现截距为0 geom_smooth(method = "lm", formula = y ~ x + 0, se = FALSE, color = "red", linetype = "dashed") + labs(y = "total export (tonnes)", title = "Total Barley and Oats export to all destinations")
代码说明
- 先把筛选、汇总后的数据保存到
plot_data变量,所有绘图操作都基于处理好的该数据集 - 两条回归线的
formula参数分别设置为y~x(普通拟合)和y~x+0(强制截距为0),可以按需调整颜色、线型参数区分两条线 se = FALSE是关闭回归线的置信区间显示,如果需要显示可以删除该参数
内容的提问来源于stack exchange,提问作者cchen
相关产品推荐
相关产品推荐

