手动增加geom_tile中的图例范围

时间:2013-01-08 17:43:28

标签: r layout plot ggplot2

目前,情节图例的运行范围为0.5到-0.25,我想将此值增加到1到-1,每隔0.25个间隔后休息一次。我怎么能这样做。

如果我使用scale_fill_continous(),它会覆盖我之前填充的z值。所以,解决方案将是

  

+ scale_fill_continuous(场所= SEQ(-1,1,通过= 0.25),低= '白色',高= '钢青')

但是有一个错误说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的颜色应该是浅蓝色并且它不应该是'重要的是,如果图中显示的值低于图表中的值,则提供自定义限制。

示例图:

plot

生成它的代码

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))

1 个答案:

答案 0 :(得分:18)

您需要指定比例的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))

enter image description here