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

如何在R中绘制数据框两列的分组频次柱状图

在R中绘制分组柱状图展示列内Y/N/U的频次

要实现你需要的效果,核心是先把宽格式数据转换为长格式,再用ggplot2绘制分组柱状图,具体步骤如下:

1. 处理数据格式并统计频次

先将原始的宽数据转成长格式,同时统计每列中Y、N、U的出现次数:

# 加载包含ggplot2和数据处理工具的tidyverse包
library(tidyverse)

# 你的原始数据框
t1 <- data.frame(c1=c("Y","N","U","Y","N","U"),c2=c("Y","N","N","U","U","Y"))

# 转换为长格式并统计每个列下各类别的频次
t1_long <- t1 %>%
  pivot_longer(cols = everything(), names_to = "数据列", values_to = "类别") %>%
  count(数据列, 类别)

2. 绘制分组柱状图

利用处理好的长数据生成并排的分组柱状图:

ggplot(t1_long, aes(x = 数据列, y = n, fill = 类别)) +
  # 设置条形并排显示,避免堆叠
  geom_col(position = position_dodge(width = 0.8)) +
  # 自定义坐标轴和标题文本
  labs(x = "数据列", y = "出现次数", title = "各列Y/N/U出现频次分布") +
  # 自定义类别对应的填充颜色(可选,可根据需求调整)
  scale_fill_manual(values = c("Y" = "#27ae60", "N" = "#c0392b", "U" = "#bdc3c7")) +
  # 使用简洁的主题样式
  theme_minimal()

运行后会得到以c1、c2为x轴主分组,每个主分组下分别展示Y、N、U三个独立条形,条形高度对应各自出现次数的柱状图。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 04:26:05