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

ggplot2中stat_summary继承机制解析及绘图需求咨询

搞定ggplot2折线图+理解继承机制

嘿,作为刚接触ggplot2的新手,搞不懂它的继承机制真的太正常啦!我来一步步帮你搞定这个随时间变化的空气污染总量折线图~

第一步:补全数据处理代码

你已经完成了数据集的下载和读取,接下来我们要筛选巴尔的摩市的数据,再按年份和污染类型分组计算总排放量:

# 先加载需要的工具包(如果没安装过,先跑install.packages(c("dplyr", "ggplot2")))
library(dplyr)
library(ggplot2)

# 筛选巴尔的摩(fips编码24510)的数据,按年份和污染类型分组求和
baltimore_pm25 <- NEI %>%
  filter(fips == "24510") %>%  # 锁定巴尔的摩地区数据
  group_by(year, type) %>%     # 按年份、污染类型做分组
  summarise(total_emissions = sum(Emissions), .groups = "drop")  # 计算每组的总排放量

第二步:搞懂ggplot2的继承机制

ggplot2的核心逻辑就是图层继承,说人话就是:

  • 你在最外层ggplot()里指定的data(数据集)和aes()(美学映射,比如x轴、y轴、颜色对应什么字段),会被后续所有图层(比如geom_line()、geom_point())自动复用。
  • 只有当某个图层需要用不同的数据集或特殊映射时,才需要单独指定,否则完全不用重复写相同内容——这就是它代码简洁的关键!

第三步:绘制折线图(用上继承机制)

直接看代码,我会在注释里标注哪里用到了继承:

# 顶层指定数据集和全局映射,后续所有图层都自动继承这个设置
ggplot(data = baltimore_pm25, aes(x = year, y = total_emissions, color = type)) +
  geom_line(size = 1) +  # 自动继承x、y、color的映射,不用再重复写!
  geom_point(size = 2) + # 同样继承映射,点的颜色自动对应污染类型
  labs(
    title = "巴尔的摩市4类PM2.5排放量随时间变化",
    x = "年份",
    y = "总排放量(吨)",
    color = "污染类型"
  ) +
  theme_minimal()  # 换个清爽的主题,让图表更好看

运行这段代码后,你就能得到一张清晰的折线图:四种污染类型各对应一条颜色不同的线,点标记出每年的具体数值,完美展示总量随时间的变化趋势。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 02:28:26