1

9 列の行列があり、 を使用してバイオリン プロットを作成したいと考えていますggplot2。基本的に「灰色」の順序を上げて、3つの列のグループに異なる色を付けたいと思います。これどうやってするの?

オプション「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
4

1 に答える 1

3

variable_groupingデータに呼び出される新しい列を追加して、次のようfillに指定できaesます。

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バイオリンを塗りつぶすために使用されるさまざまな色を指定するために使用できます。

于 2018-06-01T14:25:32.563 に答える