首页 > 解决方案 > ggplot boxplot 只显示一个而不是 10 个,如何解决?

问题描述

我的数据是这种格式

    Responder_status variable value

 1. good             AHSP     0.01
 2. good             AHSP     1.16
 3. poor             AHSP     0.00
 4. good             HBB      0.25

它对所有 10 个变量持续运行,每个单元格(792 个单元格)一行。所以我总共有 7920 行。这是 str 的输出。

'data.frame':   7920 obs. of  3 variables:
$ Responder_status: Factor w/ 3 levels "good","poor",..: 1 1 1 1 1 1 1 1 1 1 ...
$ variable        : Factor w/ 10 levels "AHSP","APOC1",..: 1 1 1 1 1 1 1 1 1 1 ...
$ value           : num  8.76 1.62 10.35 2.58 0 ...

当我像这样为它绘制一个箱线图时:

library(ggplot2)
ggplot(data, aes(x=factor(variable), y=value))+ geom_boxplot(aes(fill=factor(Responder_status)))

或像这样:

ggplot(data, aes(x=factor(variable), y=value, fill=factor(Responder_status))) + geom_boxplot()

我得到以下情节:

在此处输入图像描述

为什么我只得到我的最终变量的框,而不是所有的(我想要的)?

标签: rggplot2graph

解决方案


您可以尝试fill在美学功能中进行包装,如下所示:

library(ggplot2) ggplot(data, aes(x=factor(variable), y=value, fill=factor(Responder_status)))+ geom_boxplot()


推荐阅读