10

私は現在、stat_density2d()に関するHadleyのggplot20.9.0ページの例と非常によく似たプロットを作成するプロジェクトに取り組んでいます。

library(ggplot2)
dsmall <- diamonds[sample(nrow(diamonds), 1000), ]
d <- ggplot(dsmall, aes(carat, price)) + xlim(1,3)
d + stat_density2d(geom="tile", aes(fill = ..density..), contour = FALSE)
last_plot() + scale_fill_gradient(limits=c(1e-5,8e-4))

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

今、私が苦労しているのは、塗りつぶし範囲にないすべてのタイルに対して、基本的にアルファをオフ(alpha = 0)にする方法です。したがって、画像に表示されるすべての灰色のタイルは、アルファを0に設定する必要があります。これにより、特に地図の上にオーバーレイする場合に、画像が非常に見栄えよくなります。

誰か提案があれば、これは大歓迎です。

4

2 に答える 2

11

別の可能性は、のifelse代わりに使用することですcut

d + stat_density2d(geom="tile", 
    aes(fill = ..density.., alpha = ifelse(..density.. < 1e-5, 0, 1)), 
    contour = FALSE) + 
scale_alpha_continuous(range = c(0, 1), guide = "none")

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

于 2012-04-18T22:38:50.080 に答える
10

これはうまくいくようです:

d + stat_density2d(geom="tile", 
     aes(fill = ..density.., 
     alpha=cut(..density..,breaks=c(0,1e-5,Inf))), 
     contour = FALSE)+
 scale_alpha_manual(values=c(0,1),guide="none")

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

于 2012-04-18T22:09:43.067 に答える