3

パッケージを使用していますvioplot。どうすれば異なる色のバイオリン図を作成できますか?

これは私の再現可能な例です:

# Violin Plots library(vioplot) 
x1 <- mtcars$mpg[mtcars$cyl==4] 
x2 <- mtcars$mpg[mtcars$cyl==6] 
x3 <- mtcars$mpg[mtcars$cyl==8] 
vioplot(x1, x2, x3, 
names=c("4 cyl", "6 cyl", "8 cyl"), col="gold") 
title("Violin Plots of Miles Per Gallon")

ありがとうございました。

4

4 に答える 4

14

多くの色を持つことはできません。vioplotしかし、機能をハッキングしてソースコードを編集することは難しくありません。これを達成するために従う必要がある手順は次のとおりです。

  1. 初期関数をコピーします。

     my.vioplot <- vioplot()
    
  2. この関数を編集します。

     edit(my.vioplot)
    
  3. 「ポリゴン」という単語を検索し、col を col[i] に置き換えます。

  4. 単一の色を指定する場合、関数の最初でテストを行います。次の行を追加します。

     if(length(col)==1) col <- rep(col,n)
    

たとえば、データを使用する:

vioplot(x1, x2, x3, names=c("4 cyl", "6 cyl", "8 cyl"), col="gold") 
title("Violin Plots of Miles Per Gallon") 

my.vioplot(x1, x2, x3, names=c("4 cyl", "6 cyl", "8 cyl"), col=c("gold","red","blue")) 
title("Violin Plots of Miles Per Gallon multi colors") 

ここに画像の説明を入力

于 2013-02-20T09:28:29.210 に答える
4

ベクトルを 1 行 1 列でプロットする方が、関数を変更するよりも簡単に思えます。

require(vioplot)
yalist = list( rnorm(100), rnorm(100, sd = 1),rnorm(100, sd = 2) )
plot(0,0,type="n",xlim=c(0.5,3.5), ylim=c(-10,10),  xaxt = 'n', xlab ="", ylab = "Pc [%]",  main ="Skanderbeg")
for (i in 1:3) { vioplot(na.omit(yalist[[i]]), at = i, add = T, col = c(1:3)[i]) }
axis(side=1,at=1:3,labels=3:1)
于 2015-10-01T10:55:28.433 に答える
4

パッケージに忘れずgeom_violinに。ggplot2ドキュメントに塗りつぶしの色を変更する方法の例があります: http://docs.ggplot2.org/0.9.3/geom_violin.html

于 2013-02-20T18:19:53.150 に答える