17
我正在寻找一种方法来拉伸两个值之间的颜色渐变和标签的图例,无论数据集中的数据值的范围。从本质上讲,是否有与ylim()
相同的功能用于颜色渐变?ggplot比例颜色渐变范围以外的数据范围
鉴于代码图表AZ值通常在-1和1之间,我可以绘制和标记的梯度,如果中断是数据范围内:
require(ggplot2)
#generator from http://docs.ggplot2.org/current/geom_tile.html
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
}
t <- pp(30)
summary(t)
b <- c(-.5,0,.5)
p <- ggplot(data=t,aes(x=x,y=y))+
geom_tile(aes(fill=z))+
scale_fill_gradientn(colours=c("navyblue","darkmagenta","darkorange1"),breaks=b,labels=format(b))
try(ggsave(plot=p,filename=<somefile.png>,height=3,width=4))
但是,当我改变在观测范围之外的值被破坏,梯度着色似乎没有调整,梯度标签也不出现。
b <- c(-3,0,3)
我想我试图实现类似的东西,但与此解决方案失败。我有许多数据集的值在有限的范围内,但理论上它们的范围可以在0到-100(dB)之间。做scale_fill_gradient(低=“白”,高=“红”)是好的,但不让我在视觉上比较数据集。 scale_fill_gradient(low =“white”,high =“red”,limits = c(0,-100),guide =“legend”,limits = c(0,-100),breaks = b,labels = format(c 0,-100))不会产生图例,我不知所措。 – MartinT