8

次の簡単なデータがあります

data <- structure(list(status = c(9, 5, 9, 10, 11, 10, 8, 6, 6, 7, 10, 
10, 7, 11, 11, 7, NA, 9, 11, 9, 10, 8, 9, 10, 7, 11, 9, 10, 9, 
9, 8, 9, 11, 9, 11, 7, 8, 6, 11, 10, 9, 11, 11, 10, 11, 10, 9, 
11, 7, 8, 8, 9, 4, 11, 11, 8, 7, 7, 11, 11, 11, 6, 7, 11, 6, 
10, 10, 9, 10, 10, 8, 8, 10, 4, 8, 5, 8, 7), statusgruppe = c(0, 
0, 0, 1, 1, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 0, NA, 0, 1, 0, 1, 
0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 0, 1, 1, 0, 1, 
1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 
1, 0, 1, 1, 0, 1, 1, 0, 0, 1, 0, 0, 0, 0, 0)), .Names = c("status", 
"statusgruppe"), class = "data.frame", row.names = c(NA, -78L
))

それから、ヒストグラムを作成したいと思います:

ggplot(data, aes(status))+
geom_histogram(aes(y=..density..),
     binwidth=1, colour = "black",
     fill="white")+
theme_bw()+
scale_x_continuous("Staus", breaks=c(min(data$status,na.rm=T), median(data$status, na.rm=T), max(data$status, na.rm=T)),labels=c("Low", "Middle", "High"))+
scale_y_continuous("Percent", formatter="percent")

ここで、ビンが値に応じて色を取りたいと思います-たとえば、値> 9のビンは濃い灰色になります-それ以外はすべて薄い灰色にする必要があります。

などで試しましたがfill=statusgruppescale_fill_grey(breaks=9)動作しません。何か案は?

4

3 に答える 3

14

うまくいけば、これで始められるはずです:

ggplot(data, aes(status, fill = ..x..))+
  geom_histogram(binwidth = 1) + 
  scale_fill_gradient(low = "black", high = "white")

ggplot(data, aes(status, fill = ..x.. > 9))+
  geom_histogram(binwidth = 1) + 
  scale_fill_grey()
于 2010-03-30T19:31:34.567 に答える
0

どうscale_manualですか?Hadley のサイトへのリンクは次のとおりです。この関数を使用して、箱ひげ図に適切な塗りつぶしの色を設定しました。ただし、ヒストグラムで機能するかどうかはわかりません...

于 2010-03-30T17:17:17.323 に答える
0

fill=..count..またはfill=I(..count..>9)の直後に使用するのはどうy=..density..ですか?凡例のタイトルとラベルを少しいじる必要がありますが、適切な配色になります。

編集:
あなたの質問を少し誤解したようです。x 座標に基づいて色を定義する場合は、..x..同様に自動変数を使用できます。

于 2010-03-30T15:10:54.447 に答える