9

目前,情节图例的范围为 0.5 到 -0.25,我想将其增加到 1 到 -1,并在每 0.25 间隔后休息。我怎样才能做到这一点。

如果我使用 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 回答