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

如何在R中绘制条形图对比各布尔数据列的TRUE值计数

各平台布尔值TRUE计数条形图实现方案

核心逻辑很简单:先逐列统计每列中TRUE的出现次数,再以平台名为X轴、计数为Y轴绘制条形图即可,以下是两种最常用的实现方式:

方案1:R语言(ggplot2)实现

首先统计每列的TRUE值数量,再绘图:

# 加载绘图依赖
library(ggplot2)

# 逐列统计TRUE值,na.rm=TRUE代表自动忽略缺失值
count_result <- colSums(your_dataset, na.rm = TRUE)
# 整理为ggplot要求的数据格式
plot_data <- data.frame(
  platform_name = names(count_result),
  true_num = as.numeric(count_result)
)

# 绘制条形图
ggplot(plot_data, aes(x = platform_name, y = true_num)) +
  geom_col(fill = "#2c7fb8") +
  # 固定Y轴范围为0-91,按每10个单位设置刻度
  scale_y_continuous(limits = c(0, 91), breaks = seq(0, 91, 10)) +
  labs(
    x = "平台名称",
    y = "应答为TRUE的受访者计数",
    title = "各平台司机应答情况对比"
  ) +
  # 若平台名过长重叠,可放开下一行注释旋转X轴标签
  # theme(axis.text.x = element_text(angle = 30, hjust = 1)) +
  theme_minimal()

方案2:Python(pandas+matplotlib)实现

Python中布尔值True等价于数值1、False等价于0,直接按列求和就能得到TRUE的计数:

import pandas as pd
import matplotlib.pyplot as plt

# 按列统计TRUE值数量,skipna=True代表忽略缺失值
count_result = your_dataset.sum(skipna=True).reset_index()
count_result.columns = ["platform_name", "true_num"]

# 绘制条形图
plt.figure(figsize=(10, 6))
plt.bar(
    x=count_result["platform_name"],
    height=count_result["true_num"],
    color="#2c7fb8"
)
# 固定Y轴范围0-91
plt.ylim(0, 91)
plt.yticks(range(0, 92, 10))
plt.xlabel("平台名称")
plt.ylabel("应答为TRUE的受访者计数")
plt.title("各平台司机应答情况对比")
# 平台名过长时旋转X轴标签避免重叠
plt.xticks(rotation=30, ha="right")
plt.tight_layout()
plt.show()

可选优化

  • 若想让条形按计数从高到低排序展示,可在绘图前对统计结果按true_num列做降序排序,可读性更强
  • 若数据中存在缺失值,一定要在统计时开启缺失值忽略参数,否则最终统计结果会返回空值
  • 可以给条形加上数值标签,直接在条顶显示具体计数,不用对照Y轴估算

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.02 18:21:52