Violin Plot(geom_violin)具有聚合值

时间:2013-05-06 11:12:27

标签: r ggplot2

我想用聚合数据创建小提琴图。我的数据有一个类别,一个值coloumn和一个计数coloumn:

data <- data.frame(category = rep(LETTERS[1:3],3),
                   value = c(1,1,1,2,2,2,3,3,3),
                   count = c(3,2,1,1,2,3,2,1,3))

如果我创作一个简单的小提琴情节,它看起来像这样:

plot <- ggplot(data, aes(x = category, y = value)) + geom_violin()
plot

http://www.ahschulz.de/pub/overflow/violin_plot.png

这不是我想要的。解决方案是通过将每个类别 - 值组合的行相乘来重塑数据帧。问题是我的计数达到数百万,需要数小时才能完成! : - (

我的数据是否有解决方案?

提前致谢!

2 个答案:

答案 0 :(得分:6)

您可以在计算区域时提交重量。

plot2 <- ggplot(data, aes(x = category, y = value, weight = count)) + geom_violin()
plot2

您将收到权重未添加到其中的警告消息,但这没关系。见here for similar/related discussion

enter image description here

答案 1 :(得分:2)

使用stat="identity"并指定violinwidth美学似乎有效,尽管我不得不设置一个软糖因素:

ggplot(data, aes(x = category, y = value)) + 
   geom_violin(stat="identity",aes(violinwidth=0.2*count))