5

密度曲線の上に背景と同じ色の半透明の長方形をプロットして、密度曲線の明るい色調の垂直領域を作成しようとしています(ラッシュアワーなどの関心のある範囲を視覚化するためのハック)。ご覧のとおり、アルファは失敗します。誰かが次のコードを動作させることができるのだろうか?

ggplotのアルファチャネルの問題に関する他の投稿があることは知っていますが(たとえば)、これを解決するものはないようで、現在の状況がバージョンごとに何であるかは明確ではありません。

前もって感謝します :)

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

d <- data.frame(rnorm(100, mean = 0, sd = 100)); names(d) <- 'data'

ggplot(d) + geom_density(aes(x=data),col=NA, fill='grey30') + opts(panel.background=NULL) +
  geom_rect(aes(xmin=-30, xmax=30, ymin=0, ymax=0.005), fill='white',alpha=0.2)

ggplot(d) + geom_density(aes(x=data),col=NA, fill='grey30') + opts(panel.background=NULL) +
  geom_rect(aes(xmin=-30, xmax=30, ymin=0, ymax=0.005), fill='#FFFFFF40')
4

1 に答える 1

9

選択した値が低すぎるようalphaです。たとえば1/256、透明度を可能な限り低くしてみてください。

ggplot(d) + geom_density(aes(x = data), col = NA, fill = 'grey30') + 
  theme(panel.background = NULL) +
  geom_rect(aes(xmin = -30, xmax = 30, ymin = 0, ymax = 0.005), 
            fill = 'white', alpha = 1/256)

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

これは私にとっても予想外の解決策です。これは、単色を与えるためにオーバープロットする必要のあるポイントの数であるため、。で異なる結果が期待されるためalpha = I(1/d)です。あなたが言ったように、それはに関連する非常に頻繁な問題です。d1/256geom_rect

于 2012-09-09T16:10:28.913 に答える