从下图中,我想约束从绿色到红色(黄色部分)的过渡到红线。当z <1时我喜欢绿色,z> 1时我喜欢红色,而z = 1则是黄色。
library(ggplot2)
数据(仅用于说明情节)
x=seq(0,5,length=1e2)
y=seq(0,5,length=1e2)
#
df=expand.grid(x=x,y=y)
df$z=df$x*df$y
剧情
ggplot(data=df, aes(x=x,y=y,z=z,fill=z)) +
geom_raster()+
stat_contour(breaks=1, size=1, colour="red") +
scale_fill_gradientn (colours=colorRampPalette (c ("green", "yellow","red")) (20))
感谢您的帮助
答案 0 :(得分:1)
这是创建情节的一种方法。正如@CMichael指出的那样,可以使用函数scale_fill_gradient2
。它允许基于三种颜色指定连续色标。
ggplot(data=df, aes(x = x, y = y, z = z, fill = z)) +
geom_raster() +
stat_contour(breaks = 1, size = 1, colour = "red") +
scale_fill_gradient2(low = "green", mid = "yellow", high = "red", midpoint = 1)