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

如何用R实现按年龄区间分组的分数数据可视化?

在R中实现年龄区间的比例/条形可视化

嘿,咱们一步步来解决这个可视化问题~你说得对,散点图确实不适合按年龄区间分组的场景,而比例类的条形图是非常合适的选择,在R里实现起来也很简单。下面给你两种贴合需求的方案:

第一步:先把数据整理成带年龄区间的格式

首先咱们把你的原始数据导入R,然后用cut()函数把年龄划分成你需要的30-39、40-49这类区间:

# 把你的原始数据转换成数据框
age_score <- data.frame(
  Age = c(60, 30, 70, 50, 45, 69, 62, 32, 52),
  Score = c(0.56, 0.02, 0.92, 0.45, 0.31, 0.75, 0.54, 0.30, 0.50)
)

# 创建年龄区间,指定分组和标签
age_score$Age_Group <- cut(
  age_score$Age,
  breaks = seq(30, 80, by = 10),  # 设到80是为了包含70这个值
  labels = c("30-39", "40-49", "50-59", "60-69", "70-79"),
  include.lowest = TRUE  # 确保30被包含在第一个区间里
)

方案一:区间平均分数条形图(最直观的基础款)

如果你只是想展示每个年龄区间的平均分数水平,普通条形图就足够清晰,用ggplot2来实现:

library(ggplot2)

# 先计算每个区间的平均分数
grouped_avg <- aggregate(Score ~ Age_Group, data = age_score, mean)

# 绘制条形图
ggplot(grouped_avg, aes(x = Age_Group, y = Score)) +
  geom_bar(stat = "identity", fill = "#2E86AB", alpha = 0.8) +
  labs(title = "各年龄区间的平均分数", x = "年龄区间", y = "平均分数") +
  theme_minimal()

这个图能一眼看出哪个年龄区间的平均分数更高,非常直观。

方案二:比例堆叠条形图(就是你提到的proportional plot)

如果你的需求是展示每个年龄区间内分数的分布比例(比如把分数分成低、中、高三个档位,看每个区间各档位的占比),那这个比例堆叠图就完全符合你的要求:

# 先把分数分成几个档位(这里按0-0.3、0.3-0.6、0.6-1分成低/中/高)
age_score$Score_Level <- cut(
  age_score$Score,
  breaks = c(0, 0.3, 0.6, 1),
  labels = c("低分数", "中分数", "高分数"),
  include.lowest = TRUE
)

# 绘制比例堆叠条形图,position="fill"会把每个条形的高度统一为100%
ggplot(age_score, aes(x = Age_Group, fill = Score_Level)) +
  geom_bar(position = "fill") +
  labs(title = "各年龄区间的分数档位比例", x = "年龄区间", y = "占比", fill = "分数档位") +
  theme_minimal() +
  scale_y_continuous(labels = scales::percent)  # 把y轴转成百分比格式,更直观

这个图里每个条形都是100%高度,能清晰看到每个年龄区间内不同分数档位的占比,完美对应你说的proportional plot需求。

额外小建议

如果你的分数是连续值,也可以试试箱线图结合年龄区间,能展示每个区间内分数的分布范围和中位数,也是很实用的选择:

ggplot(age_score, aes(x = Age_Group, y = Score)) +
  geom_boxplot(fill = "#F2D7EE", alpha = 0.8) +
  labs(title = "各年龄区间的分数分布", x = "年龄区间", y = "分数") +
  theme_minimal()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:58:09