You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用ggplot2绘制gapminder可视化时geom_point分布异常的排查

问题解决步骤

你的核心问题是用了预测数据集来绘制散点,导致点呈现拟合线的分布,而目标图应该展示gapminder的真实观测数据点。以下是具体调整方案:

1. 筛选原始数据中的目标大洲

先从gapminder原始数据里提取非洲和欧洲的真实观测值:

real_data <- subset(gapminder, continent %in% c("Africa", "Europe"))

2. 修改ggplot代码中的图层设置

  • 把geom_point的数据源指定为上面的real_data,展示真实的国家数据点
  • 替换geom_smooth为geom_line,用已计算好的预测拟合值(避免重新拟合模型)
  • 保留原有颜色、主题、图例等设置

修改后的完整代码:

library(gapminder)
library(ggplot2)
library(scales)

# 保留原有的模型拟合和预测计算
(out <- lm(formula = lifeExp ~ gdpPercap + pop + continent, data = gapminder))
(min_gdp = min(gapminder$gdpPercap))
(max_gdp = max(gapminder$gdpPercap))
(med_pop = median(gapminder$pop))
(pred_df = expand.grid(gdpPercap = (seq(from = min_gdp, to = max_gdp, length.out = 100)),
                       pop = med_pop, continent = c("Africa", "Americas", "Asia", "Europe", "Oceania")))
(pred_out = predict(object = out,
                    newdata = pred_df,
                    interval = "predict"))
pred_df$lifeExp <- predict(out, newdata = pred_df)
pred_df = cbind(pred_df, pred_out)
filtered_data <- subset(pred_df, continent %in% c("Africa", "Europe"))
line_colors <- c("seagreen", "slateblue4")

# 新增:筛选原始数据中的真实观测点
real_data <- subset(gapminder, continent %in% c("Africa", "Europe"))

# 修改后的ggplot代码
ggplot(data = filtered_data, aes(x = gdpPercap, y = lifeExp, color = continent)) +
  geom_ribbon(aes(ymin = lwr, ymax = upr, fill = continent), 
              alpha = 0.2, linetype = 0, color = NA) +
  # 指定geom_point用真实数据
  geom_point(data = real_data, aes(color = continent), size = 3, alpha = 0.8) +
  # 用geom_line绘制模型拟合线,替代geom_smooth
  geom_line(linewidth = 1) +
  scale_x_log10(labels = scales::dollar) +
  scale_color_manual(values = line_colors) +
  scale_fill_manual(values = line_colors) +
  scale_shape_manual(values = c(16, 17)) +
  theme_bw() +
  theme(legend.title = element_blank())

调整说明

  • geom_point改用真实数据后,点会呈现原始数据的分散分布,符合目标图要求
  • 用geom_line替代geom_smooth,确保绘制的是你通过lm模型计算出的拟合线,而非ggplot自动重新拟合的结果
  • 其他设置(颜色填充、主题、对数坐标轴等)保留原有配置,符合作业要求

内容的提问来源于stack exchange,提问作者Ahn Seoyeong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 00:53:26