4

これに似たデータがあり、ラティスを使用して箱ひげ図を作成します。

mydata <- data.frame(Y = rnorm(3*1000),
                  INDFACT =rep(c("A", "B", "C"), each=1000),
                  CLUSFACT=factor(rep(c("M","F"), 1500)))
library(lattice)
bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1))

私の質問は、ファクターA、B、Cごとに異なる色を使用したいということです。これを試しました。

bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1), col=c("red","blue","green"))

ただし、ドットの色が変わるだけです。私が欲しいのは、(ドット、ボックス、傘の)全体の色を変更することです。

それを行う方法はありますか?

4

3 に答える 3

8
names(trellis.par.get())
 [1] "grid.pars"         "fontsize"          "background"        "panel.background"  "clip"             
 [6] "add.line"          "add.text"          "plot.polygon"      "box.dot"           "box.rectangle"    
[11] "box.umbrella"      "dot.line"          "dot.symbol"        "plot.line"         "plot.symbol"      
[16] "reference.line"    "strip.background"  "strip.shingle"     "strip.border"      "superpose.line"   
[21] "superpose.symbol"  "superpose.polygon" "regions"           "shade.colors"      "axis.line"        
[26] "axis.text"         "axis.components"   "layout.heights"    "layout.widths"     "box.3d"           
[31] "par.xlab.text"     "par.ylab.text"     "par.zlab.text"     "par.main.text"     "par.sub.text"   

それで、傘と点と箱を変えたかったのですが、それが長方形の塗りつぶしであるかどうかは言いませんでした。塗りつぶしとドットの両方を実行しても意味がないため、これは長方形の線であると推測します。

bwp <- bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1), 
               par.settings = list( box.umbrella=list(col= c("red", "green", "blue")), 
                                    box.dot=list(col= c("red", "green", "blue")), 
                                    box.rectangle = list(col= c("red", "green", "blue")) 
              )                    )
bwp

ここに画像の説明を入力してください

于 2012-04-18T23:22:05.037 に答える
3

パラメータを設定してみてbox.rectangleください:

bwplot(Y ~ INDFACT | CLUSFACT, data=mydata, layout=c(2,1),
        par.settings = list(box.rectangle = list(fill= rep(c('red','blue','green'),2)))

ここに画像の説明を入力してください

同様に、私が推測するパラメータがありbox.dotbox.umbrellaあなたが期待することを実行します。

于 2012-04-18T23:06:08.907 に答える
1

面白いことに、これを行うggplot2と次のようになります。

library(ggplot2)
ggplot(mydata, aes(x=INDFACT, y=Y, fill=INDFACT))+ 
  geom_boxplot()+
  facet_wrap(~CLUSFACT)
于 2012-04-18T23:20:55.063 に答える