ggplot小提琴图,按组指定不同的颜色?
ggplot violin plot, specify different colours by group?
我有一个 9 列的矩阵,我想使用 ggplot2
创建一个小提琴图。我想为三列的组设置不同的颜色,基本上增加 "grayness" 的顺序。我该怎么做?
我试过在选项 "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
可用于指定用于填充小提琴的不同颜色。
我有一个 9 列的矩阵,我想使用 ggplot2
创建一个小提琴图。我想为三列的组设置不同的颜色,基本上增加 "grayness" 的顺序。我该怎么做?
我试过在选项 "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
可用于指定用于填充小提琴的不同颜色。