防止 guide_colorbar 扩展

jba*_*ums 4 r ggplot2

默认情况下,geom_raster创建一个稍微超出数据限制的渐变图例。

例如:

library(ggplot2)
p1 <- ggplot(data=cbind(expand.grid(x=1:10, y=1:10), z=seq(0, 100, length=100)), 
       aes(x=x, y=y, fill=z)) + 
  geom_raster() +
  coord_equal() +
  scale_x_continuous(expand=c(0, 0)) +
  scale_y_continuous(expand=c(0, 0))

p1
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

我可以防止颜色条超出这些限制(即上例中的 0 和 100)吗?设置limits=c(0, 100)没有帮助,设置draw.ulimdraw.llimtoFALSE只是隐藏了极端的滴答声,但仍然绘制了相同的斜坡,例如:

p1 + scale_fill_continuous(
  limits=c(0, 100), guide=guide_colorbar(draw.ulim=FALSE, draw.llim=FALSE))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

Jaa*_*aap 5

这种行为的原因是颜色条被分成“箱”并且标签被放置在箱的中间。由于默认的 bin 数量是20,您将在颜色栏末端的 bin 中间看到刻度,在顶部刻度上方和底部刻度下方留出空间。通过将nbin参数设置为更高的值,您将利用此行为对您有利,因为现在每个 bin 的高度要低得多,并且刻度线的高度类似于 bin 的高度:

p1 + scale_fill_continuous(limits=c(0, 100), guide=guide_colorbar(nbin = 100))
Run Code Online (Sandbox Code Playgroud)

这使:

在此处输入图片说明

仔细查看图例会发现0100值的刻度现在位于颜色条的底部/顶部。