2016-03-19 10 views
0

私は条件付きで色を指定しようとしていますが、一貫して機能していません。私は、誰かが問題が何であるか特定できることを望んでいる。私はそれを助けることができればggplotを使わないことを望んでいます。私はRのことがかなり新しいので、私が知っているもの(今のところ)に固執したいからです。R-Boxプロット条件付きカラーが動作しない

基本的には、9つのボックスのうち2つが異なる色にする必要がある一連のボックスプロットを作成しています。 2つのボックスの位置がグラフごとにx軸上で変化するので、私はカラーパターンを指定できません。私は0,2、または4のいずれかの値を持つ "Control"というラベルの列を持っています。値がControl = 0のすべてをgray80、Control = 4をgray40、Control = 2を白にしたい。私は2つの方法でこれを実現しようとした:接続箱ひげ図で

#BoxPlot with Conditional Coloring, ifelse statement 
boxplot(Y~X, ylab="y", 
xlab="x", 
col=ifelse(Control>=3, "gray40", ifelse(Control<=1, "gray80","white"))) 

#Colors 
colors <- rep("white", length(Control)) 
colors[Control=4] <- "gray40" 
colors[Control=0] <- "gray80" 

#BoxPlot with Conditional Coloring, "Colors" 
boxplot(Y~X, ylab="y", 
xlab="x", 
col=colors) 

、最初の2つのボックスがで着色する必要がある誰もが私が間違ってやっているものを私に伝えることができますか。? 1

+0

チャンスがあります場合は、([再現可能な例]をかき立てることができhttp://stackoverflow.com/questions/5963269/how-to-make-a-great-r-再現可能な例)?それまでは、ifelse(Control == 0、 "gray80"、ifelse(Control == 2、 "white"、 "grey40")) 'を試すことができました。 –

答えて

0

ここには2つの方法があります。それがあなたのために働かない場合、再現可能な例は行く方法です(元の質問の下に私のコメントを参照してください)。

xy <- data.frame(setup = rep(c(0, 2, 4), 50), value = rnorm(150)) 

boxplot(value ~ setup, data = xy) 

boxplot(value ~ setup, data = xy, col = ifelse(xy$setup == 0, "gray80", ifelse(xy$setup == 2, "white", "gray40"))) 

library(ggplot2) 

xy$setup <- as.factor(xy$setup) 


ggplot(xy, aes(y = value, fill = setup, x = setup)) + 
    theme_bw() + 
    geom_boxplot() + 
    # order of colors is determined by the order of levels of xy$setup 
    scale_fill_manual(values = c("gray80", "white", "gray40")) 

enter image description here

関連する問題