ggplot:梯度刻度在特定中断时发散

Cpt*_*emo 7 r colors ggplot2

我有这些数据

df <- data.frame(x=1:10,
                 y=1:10,
                 value = c(seq(from=0.5,to=3.2,length.out=9),Inf))
Run Code Online (Sandbox Code Playgroud)

我想用渐变色标绘制,突出显示三个中断值:

breaks <- c(0.5,1,3.2)
Run Code Online (Sandbox Code Playgroud)

我希望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))
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

white中心值/中值为中心(1.85).我不明白那时宣布断点的重点是什么.

Jaa*_*aap 9

您可以使用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()
Run Code Online (Sandbox Code Playgroud)

这给了:

在此输入图像描述