繁体   English   中英

ggplot小提琴图,按组指定不同的颜色?

[英]ggplot violin plot, specify different colours by group?

我有一个9列的矩阵,我想使用ggplot2创建一个小提琴图。 我希望三列的组具有不同的颜色,基本上增加了“灰色”的顺序。 我怎样才能做到这一点?

我已经尝试在选项“ fill =”上插入颜色列表,但是它不起作用。 请参阅下面的示例。 目前,它指示为“ gray80”,但是我希望能够为每个小提琴图指定颜色,以便能够为3个组指定颜色。

library(ggplot2)
dat <- matrix(rnorm(100*9),ncol=9)

# Violin plots for columns
mat <- reshape2::melt(data.frame(dat), id.vars = NULL)
pp <- ggplot(mat, aes(x = variable, y = value)) + geom_violin(scale="width",adjust = 1,width = 0.5,fill = "gray80")
pp

我们可以在您的数据中添加一个名为variable_grouping的新列,然后在aes指定fill

mat <- reshape2::melt(data.frame(dat), id.vars = NULL)

mat$variable_grouping <- ifelse(mat$variable %in% c('X1', 'X2', 'X3'), 'g1',
                                   ifelse(mat$variable %in% c('X4','X5','X6'), 
                                         'g2', 'g3'))

ggplot(mat, aes(x = variable, y = value, fill = variable_grouping)) + 
    geom_violin(scale="width",adjust = 1,width = 0.5)

在此处输入图片说明

您可以使用ifelse语句控制分组。 scale_fill_manual可用于指定用于填充小提琴的不同颜色。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM