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

如何在同一绘图中为各置信度点绘制A、B、C三组样本直方图?

绘制置信度对应的分组并列柱状图

首先是你提供的数据框:

df <- data.frame(
  confidence = c(0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1),
  A = c(44615, 4767, 2035, 834, 374, 186, 86, 35, 9, 4, 4),
  B = c(133995, 3059, 1152, 404, 164, 70, 33, 18, 2, 0, 0),
  C = c(37998, 2844, 1127, 472, 241, 115, 64, 33, 11, 3, 3)
)

要实现目标效果,需要先将宽格式数据转换为长格式(适配ggplot2的绘图逻辑),再绘制并列柱状图:

步骤1:安装并加载所需包

如果未安装tidyr和ggplot2,先执行安装命令:

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

加载包:

library(tidyr)
library(ggplot2)

步骤2:转换数据格式

把宽格式数据转为长格式,提取样本类别和对应数值:

df_long <- pivot_longer(df, cols = c(A, B, C), names_to = "category", values_to = "count")

步骤3:绘制并列柱状图

使用geom_col配合position_dodge实现每个置信度位置的三个并列柱子,调整细节匹配目标效果:

ggplot(df_long, aes(x = confidence, y = count, fill = category)) +
  geom_col(position = position_dodge(width = 0.8), width = 0.7) +
  scale_x_continuous(breaks = seq(0, 1, 0.1)) +  # 强制X轴显示0到1步长0.1的刻度
  scale_fill_manual(values = c("A" = "#1f77b4", "B" = "#ff7f0e", "C" = "#2ca02c")) +  # 自定义配色(可按需调整)
  labs(x = "置信度分数", y = "数量", fill = "样本类别") +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1),  # X轴标签倾斜避免重叠
    panel.grid.major.x = element_blank()  # 移除X轴方向网格线,提升清晰度
  )

关键参数说明

  • position_dodge(width = 0.8):确保同一置信度下的三个柱子并列不重叠
  • scale_x_continuous:锁定X轴刻度为需求的0到1步长0.1
  • 自定义配色可根据目标图的视觉风格调整

内容的提问来源于stack exchange,提问作者Mohamed Aziz Hadj Nasr

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:37:17