在ggplot / R的组合箱图中使用分类协变量的困难

时间:2019-05-13 13:52:57

标签: r ggplot2

请在下面找到My Data "kirecur"

kirecur$ki67in 0、1和2分别代表具有特定患者特征的患者组。 kirecur$time.yr是举行活动的时间。

我希望根据不同的患者类别(即kirecur$ki67in

)将三个箱形图组合到一个图中,以说明事件发生的时间

我写了以下

ggplot(kirecur, aes(ki67in,time.yr)) + 
geom_boxplot(aes(group = cut_width(ki67in, 1), colour=c("red", "blue", "green")))

哪个出错了:错误:Aesthetics must be either length 1 or the same as the data (29): group, colour, x, y

我将脚本更改为... colour=c("red"))),其脚本如下:

enter image description here

我需要在每个箱形图周围添加1)不同的彩色线条,并在每个箱形图内添加2)不同的颜色填充。

直觉上,似乎必须有一种比我目前正在做的方法更简单的方法。获得具有不同色线和填充的三个不同的箱形图似乎很简单-但是,我被困住了。

My Data    
kirecur <- structure(list(time.yr = c(0.25, 0.333333333333333, 0.333333333333333, 
    0.416666666666667, 0.5, 0.583333333333333, 0.666666666666667, 
    0.666666666666667, 0.666666666666667, 0.75, 1, 1.25, 1.41666666666667, 
    3.16666666666667, 3.25, 4.08333333333333, 4.41666666666667, 4.5, 
    4.66666666666667, 4.75, 4.83333333333333, 4.83333333333333, 5, 
    6.16666666666667, 7.41666666666667, 7.5, 7.66666666666667, 9.83333333333333, 
    10.3333333333333), ki67in = structure(c(1, 2, 1, 1, 0, 2, 2, 
    0, 2, 1, 0, 0, 1, 0, 1, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 1, 
    0), class = "AsIs")), .Names = c("time.yr", "ki67in"), class = "data.frame", row.names = c(16L, 
    20L, 22L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 32L, 35L, 40L, 53L, 
    54L, 60L, 64L, 65L, 67L, 70L, 71L, 72L, 74L, 87L, 111L, 112L, 
    116L, 159L, 171L))

1 个答案:

答案 0 :(得分:1)

在分组上运行aes时,只需使用factor fill 参数代替 colour 参数。下面还为箱形图添加了晶须端:

ggplot(kirecur, aes(ki67in, time.yr, fill = factor(ki67in))) + 
  stat_boxplot(geom = "errorbar", width = 0.5) +       # FOR WHISKERS
  geom_boxplot(aes(group = cut_width(ki67in, 1))) +
  guides(fill=guide_legend(title="ki67in"))

Plot Output