我想用聚合数据创建小提琴图。我的数据有一个类别,一个值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
这不是我想要的。解决方案是通过将每个类别 - 值组合的行相乘来重塑数据帧。问题是我的计数达到数百万,需要数小时才能完成! : - (
我的数据是否有解决方案?
提前致谢!
答案 0 :(得分:6)
您可以在计算区域时提交重量。
plot2 <- ggplot(data, aes(x = category, y = value, weight = count)) + geom_violin()
plot2
您将收到权重未添加到其中的警告消息,但这没关系。见here for similar/related discussion。
答案 1 :(得分:2)
使用stat="identity"
并指定violinwidth
美学似乎有效,尽管我不得不设置一个软糖因素:
ggplot(data, aes(x = category, y = value)) +
geom_violin(stat="identity",aes(violinwidth=0.2*count))