开始使用免费开始使用

发散色标示例

我们再看看另一个默认配色不太合适的数据集。这个栅格 migration 给出了 1990 年到 2000 年间,落在栅格每个像元中的净迁入人口估计值。正数表示净迁入,负数表示净迁出。先看一下:

tm_shape(migration) +
  tm_raster() +
  tm_legend(outside = TRUE, 
            outside.position = c("bottom"))

默认的色标看起来不太有用,不过 tmap 实际上做了一件很聪明的事:它自动选择了发散色标。发散色标在这里是合适的,因为大规模的人口流动可能是很大的正数,或绝对值很大的负数。0(即没有净迁移)是一个自然的中点。

当绘制变量同时包含正值和负值时,tmap 会选择发散色标,并把 0 作为中点。但这并不总是最合适的做法。设想您要绘制以百分比表示的相对变化;100% 可能是更直观的中点。如果您需要不同的设置,最佳做法是自己生成一个发散调色板(使用奇数步数,以便存在一个居中的颜色),并自行指定分割点(breaks)。

现在请您亲自添加一个发散色标,看看是否能得到更有信息量的地图。

(数据来源:de Sherbinin, A., M. Levy, S. Adamo, K. MacManus, G. Yetman, V. Mara, L. Razafindrazay, B. Goodrich, T. Srebotnjak, C. Aichele, and L. Pistolesi. 2015. Global Estimated Net Migration Grids by Decade: 1970-2000. Palisades, NY: NASA Socioeconomic Data and Applications Center (SEDAC). http://dx.doi.org/10.7927/H4319SVC,检索于 2016-09-27)

本练习是课程的一部分

在 R 中可视化地理空间数据

查看课程

练习说明

  • 打印 migration,确认这是一个 RasterLayer 对象,并查看迁移值的取值范围。
  • RColorBrewer 中的 "RdGy" 调色板生成 7 种颜色的发散色板,命名为 red_gray
  • 在绘图中将发散色板 red_gray 用作配色。注意:这会使用您的颜色,但分割点还不理想。
  • 为色标添加固定分割点:c(-5e6, -5e3, -5e2, -5e1, 5e1, 5e2, 5e3, 5e6)

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Print migration


# Diverging "RdGy" palette
red_gray <- brewer.pal()

# Use red_gray as the palette 
tm_shape(migration) +
  tm_raster() +
  tm_legend(outside = TRUE, outside.position = c("bottom"))

# Add fixed breaks 
tm_shape(migration) +
  tm_raster() +
  tm_legend(outside = TRUE, outside.position = c("bottom"))
编辑并运行代码