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

求助:如何绘制以字符串为X轴、均值为高度的条形图

解决按水果类型汇总绘制均值条形图的问题

嘿,这个问题我之前也碰到过!核心问题是你直接用原始的逐条数据绘图了,没有先按水果类型汇总计算均值,所以才会出来一百多个条形。咱们分两步就能搞定:

第一步:先按水果类型汇总均值

这里给你两种常用的方法,选你顺手的就行:

方法1:用Base R自带的aggregate()函数

假设你的数据框叫fruits,包含type(水果类型)和amount(对应数值)两列:

# 按type分组,计算每组amount的均值
fruit_summary <- aggregate(amount ~ type, data = fruits, FUN = mean)

方法2:用dplyr的管道语法(更直观)

如果你习惯tidyverse的风格,先装包加载:

install.packages("dplyr") # 第一次用需要安装
library(dplyr)

# 分组后计算均值
fruit_summary <- fruits %>%
  group_by(type) %>%
  summarise(mean_amount = mean(amount))

第二步:用汇总好的数据绘制条形图

现在用汇总后的fruit_summary绘图,就能得到每个水果对应一个条形的效果了:

Base R版本

# 如果你用的是aggregate的结果(列名是type和amount)
barplot(fruit_summary$amount, names.arg = fruit_summary$type, 
        main = "各水果类型的均值条形图", 
        xlab = "水果类型", ylab = "均值")

# 如果你用的是dplyr的结果(列名是type和mean_amount)
barplot(fruit_summary$mean_amount, names.arg = fruit_summary$type, 
        main = "各水果类型的均值条形图", 
        xlab = "水果类型", ylab = "均值")

进阶:用ggplot2画更美观的图

要是想让图看起来更专业,试试ggplot2,还能轻松处理X轴标签重叠的问题:

install.packages("ggplot2")
library(ggplot2)

ggplot(fruit_summary, aes(x = type, y = mean_amount)) +
  geom_bar(stat = "identity", fill = "#2196F3") +
  labs(title = "各水果类型的均值条形图", x = "水果类型", y = "均值") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1)) # 旋转X轴标签,避免挤在一起

这样操作后,你就能得到每个水果类型对应一个条形,高度正好是该类型的均值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:37:29