发散色标示例
我们再看看另一个默认配色不太合适的数据集。这个栅格 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"))