20

更改上限scale_fill_gradient2也会影响值 < 0 的颜色缩放,因为 0 附近的颜色分布似乎总是对称的,有没有办法获得颜色值的不对称分布?

这是一个使用 的情节的最小示例geom_tile()

data <- read.csv("http://protzkeule.de/data.csv")
p <- ggplot(data = data, aes(x = variable, y = meas)) + geom_tile(aes(fill = value))

具有对称限制的绘图:

p + scale_fill_gradient2(low = "blue", mid = "white", high = "red", guide = "colorbar",
                         limits = c(-0.1, 0.1))

但是当改变上限时,下限颜色映射也会改变(注意颜色条):

p + scale_fill_gradient2(low = "blue", mid = "white", high = "red", guide = "colorbar",
                         limits = c(-0.1, 0.3))
4

1 回答 1

28

你想要的是scale_fill_gradientn. 论点不是很清楚(我花了一个小时左右才最终弄清楚其中的一部分),但是:

library("scales")
p + scale_fill_gradientn(colours = c("blue","white","red"), 
                         values = rescale(c(-.1,0,.3)),
                         guide = "colorbar", limits=c(-.1,.3))

这使:

在此处输入图像描述

于 2012-07-02T21:25:05.383 回答