R - 为什么我的 ColorBrewer 调色板错误

Max*_*Wen 0 r ggplot2 colorbrewer

我正在 R 中做一个简单的散点图,当我尝试使用 colorbrewer 调色板“RdBu”时,我得到了明显不同的东西,但我不知道为什么。

这是我的数据摘要

> summary(d$Year)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   1880    1914    1947    1947    1980    2014 

> summary(d$NHem)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
-52.000 -21.500  -2.000   3.326  16.000  91.000 

> summary(d$NHem.bin)
-3 -2 -1  0  1  2  3  4  5 
 1 23 28 37 22  4  8 11  1 
Run Code Online (Sandbox Code Playgroud)

当我使用命令时

ggplot(d, aes(x=Year, y=NHem, colour=NHem.bin)) + geom_point() + scale_fill_brewer(palette = "RdBu") 
Run Code Online (Sandbox Code Playgroud)

我明白了

在此输入图像描述

所以这显然不是“RdBu”。我究竟做错了什么??

另外,我正在创建一个 bin var,以便我可以尝试在 3 个独立的图中保持相同的梯度。

既然我已经在这里了,我如何反转比例,使蓝色端对应于更多的负数,红色端对应于更多的正数?

谢谢

luk*_*keA 5

首先,你没有fill绘制出美学图。其次,您应该映射color美学或指定具有填充的点形状:

library(ggplot2)
ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +  
  geom_point() + 
  scale_color_brewer(palette = "RdBu") -> p1

# or
ggplot(mtcars, aes(wt, mpg, fill = factor(cyl))) +  
  geom_point(shape=21, color=NA) + 
  scale_fill_brewer(palette = "RdBu") -> p2

gridExtra::grid.arrange(p1, p2)
Run Code Online (Sandbox Code Playgroud)

给出

在此输入图像描述