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

如何在R语言中将列联表转换为直方图或条形图?

在R中将列联表转换为条形图/直方图的操作流程

1. 先构造模拟列联表

先拿一个性别与偏好的列联表做示例,你可以替换成自己的真实数据:

# 构造模拟列联表
contingency_table <- table(
  Gender = c(rep("Male", 15), rep("Female", 20)),
  Preference = c(rep("A", 5), rep("B", 10), rep("A", 12), rep("B", 8))
)
print(contingency_table)

输出的列联表结构:

Preference
Gender   A  B
  Male   5 10
  Female 12  8

2. 转换为适合绘图的长格式数据

列联表是宽格式汇总数据,ggplot2等绘图工具需要长格式(包含类别、对应计数),两种转换方法:

# 方法1:Base R 原生转换
long_data <- as.data.frame(contingency_table)
colnames(long_data) <- c("Gender", "Preference", "Count")

# 方法2:Tidyverse 包(更灵活,推荐)
library(tidyverse)
long_data <- contingency_table %>% 
  as.data.frame() %>% 
  rename(Count = Freq)

转换后的数据结构:

Gender Preference Count
1    Male          A     5
2  Female          A    12
3    Male          B    10
4  Female          B     8

3. 绘制条形图(列联表可视化首选)

3.1 分组条形图(对比跨类别差异)

ggplot(long_data, aes(x = Preference, y = Count, fill = Gender)) +
  geom_bar(stat = "identity", position = "dodge") +
  labs(title = "不同性别对选项的偏好分布", x = "偏好选项", y = "人数") +
  theme_minimal()

呈现效果:X轴是偏好选项A/B,每个选项下分两个条形(男/女),高度对应人数,填充色区分性别,能直观对比不同性别在同一选项上的人数差异,清晰展示变量间的关联。

3.2 堆叠条形图(展示组内结构)

ggplot(long_data, aes(x = Gender, y = Count, fill = Preference)) +
  geom_bar(stat = "identity", position = "stack") +
  labs(title = "各性别内的偏好占比", x = "性别", y = "人数") +
  theme_minimal()

呈现效果:X轴是性别,每个条形堆叠A/B的人数,既能看到每个性别的总人数,也能直观看到各偏好在组内的占比情况,适合展示分类变量的组内结构。

4. 绘制直方图(适合单变量分布展示)

直方图更适合连续变量,针对列联表的分类变量,我们可以先还原原始数据再绘制:

# 从列联表还原原始数据
raw_data <- long_data %>% 
  uncount(Count)

# 绘制偏好的直方图
ggplot(raw_data, aes(x = Preference)) +
  geom_histogram(stat = "count", fill = "steelblue") +
  labs(title = "偏好选项的整体分布", x = "偏好选项", y = "人数") +
  theme_minimal()

呈现效果:X轴是偏好选项,条形高度对应总人数,本质和单变量条形图类似,用来展示整体样本中各分类的数量分布。

关键注意事项

  • 列联表是汇总数据,必须转成长格式才能适配大多数R绘图工具
  • 条形图是列联表可视化的最优选择,能清晰展示多分类变量间的关联
  • 直方图更适合连续变量,针对分类变量的直方图效果和条形图高度接近

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:13:08