我正在将geom_boxplot
和ggplot
一起使用,并且希望对箱形图进行分组。当我将其用于具有分组(fill
和group
)的连续数值数据时,它会为除第一个因素之外的所有因素制作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大小的连续数据上进行分组箱线图绘制的任何示例。 非常感谢您为解决此问题所提供的帮助。
答案 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具有两个因子级别,因此无法分类为e
或f
,并且在图例中它的值为NA
。
bin 2(b = 3,b = 5]在data.table d
中包含第9行和第10行。它仅包含列{{1}中因子级别f
的数据},因此在图例中将其标记为d
。
在这种情况下,图例标签应为f
和f
,可以使用
e&f
希望这有助于解决问题!