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

在ggplot中绘制指定条件柱状图:ID155的Acceptance=Yes年份统计

解决你的柱状图绘制问题

我们一步步来修正代码,搞定你需要的柱状图:

先修正原始数据集的小问题

你定义的Acceptance列里的no和yes没有加引号,R会把它们当成未定义的变量,直接运行会报错。先把数据集改对:

dat <- data.frame(
  ID = c(150,151,155,155,155,155,150),
  year = c(1995,2011,2012,2012,2013,2012,2013),
  Acceptance = c("no","yes","yes","yes","yes","no","no") # 给字符值加上引号
)

再说说你原代码的几个错误点

  1. 你写了year(Date),但你的数据里根本没有Date列,应该直接用year列筛选年份
  2. 漏掉了筛选Acceptance为Yes的记录这个关键条件,这是你需求里明确要求的
  3. 已经筛选了ID=155,分组时没必要再按ID分组,只按year分组就足够

正确的数据处理与绘图代码

library(dplyr)
library(ggplot2)

# 处理数据:筛选符合条件的记录,统计每年的数量
cl_d <- dat %>%
  filter(ID == 155) %>%
  filter(Acceptance == "yes") %>%
  filter(year > 2000) %>%
  group_by(year) %>%
  summarise(count = n())

# 绘制柱状图
ggplot(cl_d, aes(x = year, y = count)) +
  geom_bar(stat = "identity", fill = "steelblue") + # 用stat='identity'直接映射数值,加填充色更直观
  labs(
    title = "ID 155:每年Acceptance为Yes的记录数",
    x = "年份",
    y = "记录数量"
  ) +
  theme_minimal()

运行这段代码后,你会得到完全符合需求的柱状图:X轴是年份,只展示ID=155且Acceptance为Yes的记录数量。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:05:37