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

在R中绘制多列布尔值的百分比条形图

生成各列TRUE值占比的条形图

当然可以实现,以下是基于ggplot2包的完整解决方案:

步骤1:加载数据并计算占比

先还原你的数据框,再计算每列中TRUE值的占比(百分比):

# 还原数据框
df <- structure(list(chesapeakebay = c(TRUE, TRUE, TRUE, TRUE, TRUE, 
TRUE, TRUE, TRUE, TRUE, TRUE), icefishing = c(FALSE, FALSE, FALSE, 
FALSE, FALSE, FALSE, TRUE, FALSE, FALSE, FALSE), lakesimpoundments = c(FALSE, 
FALSE, FALSE, FALSE, TRUE, FALSE, TRUE, FALSE, FALSE, TRUE), 
    nontidal = c(FALSE, TRUE, FALSE, FALSE, TRUE, FALSE, TRUE, 
    FALSE, FALSE, TRUE), tidal = c(FALSE, TRUE, FALSE, TRUE, 
    TRUE, TRUE, TRUE, FALSE, TRUE, TRUE)), row.names = c(NA, 
-10L), class = c("tbl_df", "tbl", "data.frame"))

# 计算每列TRUE的百分比并整理成长格式
library(dplyr)
library(tidyr)

plot_data <- df %>%
  summarise(across(everything(), ~ mean(.x) * 100)) %>%
  pivot_longer(cols = everything(), names_to = "变量", values_to = "TRUE占比(%)")

步骤2:绘制条形图

用ggplot2绘制条形图,同时添加百分比标签让结果更直观:

library(ggplot2)

ggplot(plot_data, aes(x = 变量, y = `TRUE占比(%)`)) +
  geom_bar(stat = "identity", fill = "#2E8B57", alpha = 0.8) +
  geom_text(aes(label = paste0(round(`TRUE占比(%)`, 1), "%")), 
            vjust = -0.3, size = 4) +
  labs(title = "各变量TRUE值占比",
       x = "变量名称",
       y = "TRUE值占比(%)") +
  theme_minimal() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

这段代码会生成一个清晰的条形图:每个条形对应数据框的一列,高度代表该列TRUE值的占比,条形上方标注具体百分比,x轴标签倾斜45度避免重叠。

如果还没安装所需包,先运行以下命令安装:

install.packages(c("dplyr", "tidyr", "ggplot2"))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 18:14:53