1
スケール制限外の値がスケール制限自体と同じ色になるように、ラスタをプロットしたいとします。ggplotの制限としての境界からの塗りつぶし
# Generate data
pp <- function (n,r=4) {
x <- seq(-r*pi, r*pi, len=n)
df <- expand.grid(x=x, y=x)
df$r <- sqrt(df$x^2 + df$y^2)
df$z <- cos(df$r^2)*exp(-df$r/6)
df
}
pp200 <- pp(200)
ggplot(pp200, aes(x, y, fill = z)) +
geom_raster() +
scale_fill_gradient2(limits=c(-0.5, 0.5))
すべてがgrey50
(na.value
)です!
私もscale_fill_gradient2()
オプションで試してみました:私は現在、マッピングされたバインド値のうちに色をすることができますどのように
oob=squish #This does not seem to exists anymore
と
oob=function(x, ...) x #does nothing
と
oob=clip #this does not work:
#Error in f(...) : argument "x2" is missing, with no default
をNAには、スケールの限界値がありますか?上記の例では、値> 0.5
は青色で、< -0.5
は赤色でなければなりません。ファクタを使ってデータセットをカットすることで私ができることは分かっていますが、私は連続カラースケールが必要です。また、ブレークを使用して表示された制限を設定することもできますが、プロットの内容に関係なくフルカラースケールを表示することができます。可能であれば、データの変更を避けたいと思います。
@Axemanあなたはoobの機能またはデータの変更を意味しますか?もちろん、私はデータを修正することができますが、私はそれを避けたいと思います。その理由は、たとえば、 'stat_summary()'を使用したい場合、それは嫌になります。はい、私はそれを回避することができますが、これは単純なものでなければならないこと(これは以前のggplotのバージョンでは 'oob = squish'を使っていました) z)ifelse(z <0.5、ifelse(z> -0.5、z、-0.5)、0.5) ') – AF7