我有此数据:

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)为中心。我不明白那时声明断点有什么意义。

最佳答案

您可以使用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()

这给出了:

关于r - ggplot : gradient scale to diverge on specific break,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30639063/

10-12 14:01