在连续数据上使用geom_boxplot进行分组的框图使NA标签

时间:2018-08-07 16:59:45

标签: r ggplot2 boxplot

我正在将geom_boxplotggplot一起使用,并且希望对箱形图进行分组。当我将其用于具有分组(fillgroup)的连续数值数据时,它会为除第一个因素之外的所有因素制作NA标签。 这是示例数据:

    d<- data.table(a=c(11,1,2,3,8,4,9,12,50,7), b= c(1,2,2,3,1,1,2,2,4,4), 
d=as.factor(c("e","f", "e","e","e","f","f","e","f","f")))
ggplot(d, mapping=aes(x=b,y=a,fill= d)) + geom_boxplot(aes(group = cut_width(b, 2)))

这将产生带有组标签f和NA而不是f和e的箱线图箱。 这只是一个玩具的例子。我通常在寻找在经过调整的bin大小的连续数据上进行分组箱线图绘制的任何示例。 非常感谢您为解决此问题所提供的帮助。

1 个答案:

答案 0 :(得分:0)

标签问题的问题在于cut_width对数据的作用方式。它将b列中的数据放入指定宽度为2的bin中。因此,在您提供的示例数据中,存在两个bin:[b = 1,b = 3]和(b = 3,b = 5 ]。

容器1 [b = 1,b = 3]包含data.table d中的1-8行。这意味着此bin包含来自两个因子级别的数据,e , f来自列d。由于bin具有两个因子级别,因此无法分类为ef,并且在图例中它的值为NA

bin 2(b = 3,b = 5]在data.table d中包含第9行和第10行。它仅包含列{{1}中因子级别f的数据},因此在图例中将其标记为d

在这种情况下,图例标签应为ff,可以使用

手动设置。
e&f

希望这有助于解决问题!