Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 如何在聚合数据的ggplot2中创建小提琴图?_R_Plot_Ggplot2 - Fatal编程技术网

R 如何在聚合数据的ggplot2中创建小提琴图?

R 如何在聚合数据的ggplot2中创建小提琴图?,r,plot,ggplot2,R,Plot,Ggplot2,我试图在ggplot2中创建一个由预先计算的计数组成的聚合数据的小提琴图(原始数据太大,需要很长时间才能绘制)。下面是示例数据集 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)) data您看到的任何差异都可能仅仅是由于密度计算方式的差异造成的。以下是您给出的

我试图在ggplot2中创建一个由预先计算的计数组成的聚合数据的小提琴图(原始数据太大,需要很长时间才能绘制)。下面是示例数据集

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))

data您看到的任何差异都可能仅仅是由于密度计算方式的差异造成的。以下是您给出的示例:

data <- data.table(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))
data[, count2 := count/sum(count), by = category]
ggplot(data, aes(x = category, y = value, weight = count2)) + geom_violin()

如果没有方法不起作用的数据集,很难对数据进行故障排除。有更好的例子吗?另外,聚合图和原始值图的例子也会有所帮助。
val2 <- unlist(sapply(1:length(data$value), 
                      function(x) rep(data$value[x], 
                                      data$count[x])))
cat2 <- unlist(sapply(1:length(data$value), 
                      function(x) rep(data$category[x], 
                                      data$count[x])))

dat2 <- data.table(cat2, val2)
ggplot(dat2, aes(x = cat2, y = val2)) + geom_violin()