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

如何在R语言中为散点图添加第二个变量以对比巴西与阿根廷1950-2019年的CO2排放量

解决方法:在散点图中添加阿根廷的CO₂排放量数据

嘿,第一次用R就上手ggplot已经很棒啦!你猜的没错,确实可以结合filter和geom_point来添加阿根廷的数据,这里有两种简单的方法帮你实现:

方法1:多次调用geom_point(分别指定数据源)

你可以在现有代码的基础上,再添加一个geom_point图层,专门传入阿根廷的数据:

df %>% 
  filter(Country=="Brazil", Year<=2019 & Year>=1950) %>% 
  ggplot(aes(x = Year, y = CO2_annual_tonnes)) + 
  geom_point(na.rm = TRUE, shape=20, size=2, colour="green") + 
  # 添加阿根廷的数据点
  geom_point(
    data = df %>% filter(Country=="Argentina", Year<=2019 & Year>=1950),
    aes(x = Year, y = CO2_annual_tonnes),
    na.rm = TRUE, shape=20, size=2, colour="blue"
  ) +
  labs(x = "Year", y = "CO2 Emissions (tonnes)")

这个方法的核心是给第二个geom_point单独指定数据源(通过data=参数),这样就能在同一张图上叠加两个国家的散点啦。

方法2:先筛选两个国家,再用颜色区分(更简洁规范)

如果想让图表自动生成图例,并且代码更简洁,建议先把巴西和阿根廷的数据一起筛选出来,然后用aes()里的color参数来区分国家:

# 先筛选1950-2019年间的巴西和阿根廷数据
filtered_df <- df %>% 
  filter(Country %in% c("Brazil", "Argentina"), Year >=1950 & Year <=2019)

# 绘制散点图,用颜色区分国家
ggplot(filtered_df, aes(x = Year, y = CO2_annual_tonnes, color = Country)) +
  geom_point(na.rm = TRUE, shape=20, size=2) +
  # 可以自定义颜色
  scale_color_manual(values = c("Brazil" = "green", "Argentina" = "blue")) +
  labs(x = "Year", y = "CO2 Emissions (tonnes)", color = "Country")

这个方法的好处是:

  • 只需要一次数据筛选,代码更简洁
  • 自动生成图例,读者能更清楚地分辨两个国家的数据
  • 后续如果要加更多国家,只需要修改%in%里的向量就行

小提示:

  • 确保你的df数据框中,Country列的拼写和你写的完全一致(比如有没有大小写错误,"argentina"和"Argentina"会被识别为不同值)
  • na.rm = TRUE可以帮你跳过缺失值,避免绘图报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 23:42:30