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

在R语言中绘制非标准图形的技术求助

R绘制分组条形图的实操提示

核心工具推荐

  • 首选**ggplot2**包,这是R里最常用的可视化工具,用geom_col()(适合已有统计好的数值)或geom_bar()(默认统计计数)就能画出你要的分组条形图。
  • 配合**dplyr**包做数据预处理,比如统计每个变异类型(Variants)下各比例类型(Ratio)的数量或占比,操作起来更顺手。

基础代码示例

假设你的数据是原始记录(每一行对应一条Variants+Ratio的条目),先看两种常见场景:

场景1:统计每个Variants下各Ratio的数量

# 先加载需要的包
library(ggplot2)
library(dplyr)

# 统计数据:按Variants和Ratio分组计数
summary_data <- your_data %>%
  group_by(Variants, Ratio) %>%
  tally()

# 绘制并排分组条形图
ggplot(summary_data, aes(x = Variants, y = n, fill = Ratio)) +
  geom_col(position = "dodge") +  # position="dodge"让同组的条形并排显示
  labs(x = "变异类型", y = "数量", fill = "比例类型") +
  theme_bw()  # 用简洁的白色主题

场景2:展示每个Variants下各Ratio的占比

# 统计各Ratio在对应Variants中的百分比
summary_data <- your_data %>%
  group_by(Variants) %>%
  mutate(total = n()) %>%  # 先算每个Variants的总记录数
  group_by(Variants, Ratio) %>%
  summarise(percent = n()/first(total)*100)  # 计算占比

# 绘图,同时处理x轴标签拥挤的问题
ggplot(summary_data, aes(x = Variants, y = percent, fill = Ratio)) +
  geom_col(position = "dodge") +
  labs(x = "变异类型", y = "占比(%)", fill = "比例类型") +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))  # 旋转x轴标签,避免重叠

实用调整技巧

  • 如果Variants太多导致x轴挤在一起,直接转成横向条形图更清晰:
    ggplot(...) + geom_col(position = "dodge") + coord_flip()
    
  • 想自定义Ratio的颜色?用scale_fill_manual()指定:
    ggplot(...) + 
      geom_col(position = "dodge") +
      scale_fill_manual(values = c("A" = "#E63946", "B" = "#457B9D", "C" = "#1D3557", "D" = "#F1FAEE"))
    
  • 给条形加数值标签,让数据更直观:
    ggplot(summary_data, aes(x = Variants, y = n, fill = Ratio)) +
      geom_col(position = position_dodge(width = 0.9)) +
      geom_text(aes(label = n), position = position_dodge(width = 0.9), vjust = -0.5)  # 标签放在条形上方
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 19:22:57