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

R语言ggplot2绘制箱线图显示水平线,如何实现目标分组箱线图?

问题描述

想要在x轴的两个数据集分组下,针对y轴绘制多组箱线图,但当前生成的图显示为水平线,期望得到分组箱线图效果。使用的代码如下:

library(ggplot2)
library(dplyr)
library(viridis)
library(ggExtra)

# Create a box plot with colored boxes and labels
ggplot(testbp, aes(x = Dataset, y = Values, fill = Model)) +
geom_boxplot(varwidth = TRUE, alpha = 0.4)
解决步骤
  • 检查数据类型:箱线图依赖数值型数据计算四分位数等统计量,先确认Values列的类型:
    str(testbp)
    
    如果Values是字符型,转换为数值型:
    testbp$Values <- as.numeric(as.character(testbp$Values))
    
  • 验证分组数据量:若某个Dataset-Model分组下仅存在单个值,箱线图会显示为水平线。用以下代码查看各分组的记录数:
    testbp %>% count(Dataset, Model)
    
  • 修正后绘图代码:数据格式确认无误后,重新运行绘图代码,可添加美化项提升可读性:
    ggplot(testbp, aes(x = Dataset, y = Values, fill = Model)) +
      geom_boxplot(varwidth = TRUE, alpha = 0.7) +
      scale_fill_viridis(discrete = TRUE) +
      theme_minimal() +
      labs(title = "分组箱线图", x = "数据集", y = "数值", fill = "模型")
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 00:52:00