首页 > 解决方案 > 创建多个小提琴图

问题描述

我有一个包含 43 个不同数值变量的数据框和一个包含 823 行(患者)的分类变量。我需要根据分类变量分组的每个数字变量(每列)的小提琴图。分类变量具有不同的种族群体,如“AA”、“亚洲人”、“美洲原住民”。所以我需要 43 个小提琴图,显示基于不同种族的每个数字变量(即每列)的分布。分类变量将是常量。我正在尝试使用 for 循环,但我认为代码有问题。它不工作。

The code I am using to generate each violin plot is as follows.
ggplot2.violinplot(data=violin_df, xName='Race',yName='Cluster.1',
                   addDot=TRUE, dotSize=0.8,
                   dotPosition="jitter", jitter=0.2)


Here is the reproducible example dataset and code I am using to 
generate

install.packages("devtools")
library(devtools)
install_github("kassambara/easyGgplot2")
library(easyGgplot2)

data <- matrix(rnorm(150), nrow=15)
data <- as.data.frame(data)
data$groups <- c("group1","group1","group1","group1","group1",
             "group2","group2","group2","group2","group2",
             "group3","group3","group3","group3","group3")
data$groups <- as.factor(data$groups)

ggplot2.violinplot(data=data,xName="groups",yName="V1",
               addDot=TRUE, dotSize=0.8,
               dotPosition="jitter", jitter=0.2)



 ######I need the violin plots for all the 9 column variables in 
 ####the similar manner
 for (i in 1:ncol(data)) {
 png(file = paste("var_", i, ".png", sep=""))
 ggplot2.violinplot(data=data,xName="groups",yName="data[,i]",
                 addDot=TRUE, dotSize=0.8,
                 dotPosition="jitter", jitter=0.2)
 dev.off()
 }

标签: rmultiple-columnsviolin-plot

解决方案


推荐阅读