You need to enable JavaScript to run this app. 使用ggplot2绘制dataframe列频次条形图时aes的x、y如何设置?
优惠活动
大模型
产品
解决方案
定价
更多

使用ggplot2绘制dataframe列频次条形图时aes的x、y如何设置?

实现方案

你要的效果可以直接用geom_bar的默认计数逻辑实现,不需要手动预统计次数:

library(ggplot2)
df = data.frame(a = c(6,3,8,7,9), b = c(1,1,2,2,1))
ggplot(data=df, aes(x = factor(b))) +
  geom_bar()

aes参数说明

geom_bar默认的统计方式是stat = "count",会自动计算每个x分组的观测数量作为柱子高度,因此:

  • 不需要手动填写y参数
  • x参数填factor(b)即可(如果直接填b也能出图,但x轴会被识别为连续数值轴,转成因子可以让x轴显示为分类轴,更符合条形图的展示逻辑)

如果你一定要显式指定y参数,需要先对b列的取值做计数汇总,再搭配stat = "identity"参数使用:

library(ggplot2)
library(dplyr)
df = data.frame(a = c(6,3,8,7,9), b = c(1,1,2,2,1))
# 先统计每个b值的出现次数
df_count <- df %>% count(b)
ggplot(data=df_count, aes(x = factor(b), y = n)) +
  geom_bar(stat = "identity")

两种写法最终输出的柱子高度都是b=1对应3、b=2对应2,符合你的预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 11:15:04