9

現在、プロットの凡例は0.5〜-0.25の範囲で実行されていますが、0.25間隔ごとにブレークして、これを1〜-1に増やしたいと思います。どうやってやるの。

scale_fill_continous()を使用すると、以前に入力したzの値が上書きされます。したがって、解決策は次のようになります

+ scale_fill_continuous(breaks = seq(-1,1、by = 0.25)、low ='white'、high ='steelblue')

しかし、別の例で試したというエラーがありますError in unit(tic_pos.c, "mm") : 'x' and 'units' must have length > 0 。ここでは、0から1の範囲について言及しましたが、最大値に応じて0.555から始まります。そして最小値。zの値

凡例の寸法を大きくして、色もそれに対応するようにする必要があります。つまり、低は-1、高は+1です。

全体的な考え方は、値が-0.25(中央)付近のタイルは最低ではないので白であってはならず、最低は-1であり、-0.25の色は水色であり、問​​題ではないということです。その下の値がグラフに表示されているかどうかは、カスタム制限を提供しているためです。

プロット例:

プロット

それを生成するためのコード

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
}
ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z))
4

1 に答える 1

23

limitsスケールのを指定する必要があります。

p <- ggplot(pp(20),aes(x=x,y=y))+geom_tile(aes(fill=z))

p + scale_fill_continuous(limits=c(-1, 1), breaks=seq(-1,1,by=0.25))

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

于 2013-01-08T17:46:58.137 に答える