我有这个数据
df <- data.frame(x=1:10,
y=1:10,
value = c(seq(from=0.5,to=3.2,length.out=9),Inf))
我想用渐变色标绘制,突出显示三个中断值:
breaks <- c(0.5,1,3.2)
我希望white
颜色突出显示我的中间值(即1
),然后其他两个颜色增加强度,因为它们到达分布的两个尾部。然而,这将绘制
require(ggplot)
ggplot(df, aes(x,y,colour=value)) + geom_point(size=10) +
scale_colour_gradientn(colours = c("red","white","blue"),
breaks = breaks, labels = format(breaks))
white
以均值/中值(1.85
)为中心。我不明白那时宣布断点的重点是什么。
答案 0 :(得分:8)
您可以使用scale_colour_gradient2
代替scale_colour_gradientn
:
ggplot(df, aes(x,y,colour=value)) +
geom_point(size=10) +
scale_colour_gradient2(low = "red", mid = "white", high = "blue", midpoint = 1, breaks = breaks) +
theme_bw()
这给出了: