默认情况下,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
我可以阻止色条超出这些限制(即上例中的0和100)吗?设置limits=c(0, 100)
无效,将draw.ulim
和draw.llim
设置为FALSE
只会隐藏极端刻度,但仍会绘制相同的斜率,例如:
p1 + scale_fill_continuous(
limits=c(0, 100), guide=guide_colorbar(draw.ulim=FALSE, draw.llim=FALSE))
答案 0 :(得分:4)
此行为的原因是颜色栏被分为“箱子”,标签放在箱子的中间。由于默认的箱数为20
,您将在颜色栏末端的箱柜中间看到刻度线,在顶部刻度线上方和底部刻度线下方留出空格。通过将nbin
参数设置为更高的值,您将使用此行为对您有利,因为每个bin的高度现在要低得多,并且刻度的高度类似于bin的高度:
p1 + scale_fill_continuous(limits=c(0, 100), guide=guide_colorbar(nbin = 100))
给出:
仔细查看图例会发现0
和100
值的刻度现在位于颜色条的底部/顶部。