Skip to content

ch-0008 Chapter 7: Map Your Data

  • 原书章节: Chapter 7 Map Your Data(pp. 179–236)
  • 输入来源: 本地 pdf(HandsOnDataViz.pdf)

摘要

数据带空间维度时,地图能发展出更强的"地方感"。本章先讲地图设计原则,再分别用 Google My Maps、Datawrapper、Tableau Public 与 Socrata 平台做四种典型地图。

设计原则:区分点(point)与多边形(polygon)两类数据;choropleth(分区设色图)的 关键是把归一化后的数据按合理的颜色间隔(class intervals)映射到区域;配色要照顾 色盲读者;地图的底图(basemap)与上层数据层要协调。

工具与地图类型

  • Google My Maps:point map(点图,自定义图标/颜色),免费且易上手
  • Datawrapper:symbol point map(符号点图,用大小编码数值)、choropleth(分区设色, 内置分级与配色建议)
  • Tableau Public:choropleth(可多级联动筛选)
  • Socrata Open Data:current map——直接从开放数据 API 拉取实时数据、持续更新的地图

类型速查(Table 7.1):point map、symbol point map、choropleth、heat point map (热力点图)、story map(故事地图,见 ch-0013)、polyline map(路线)、customized point-polyline-polygon(自定义组合)、searchable point map(可搜索点图)。

要点归纳

  • 地图选型同样看"数据格式 + 故事":点的位置 vs 区域数值 vs 路线 vs 密度
  • choropleth 三要点:数据必须归一化(如按人口/面积)、颜色间隔要诚实、选对配色 (考虑色盲友好)
  • 点图适合"具体位置"(如医院),choropleth 适合"区域相对值"(如各州出生率)
  • 用平台内置工具快速出图;更高级/更定制的地图等 ch-0012 的 Leaflet 代码模板
  • current map 的"实时更新"理念:地图数据直接挂在开放 API 上(ch-0013 的 Leaflet Maps with Open Data APIs 模板延续此思路)

术语 / 概念

  • point map(点图) — 用标记点表示具体位置
  • symbol point map(符号点图) — 点的大小/颜色编码数值
  • choropleth map(分区设色图) — 用彩色多边形表示区域数值
  • heat point map(热力点图) — 用色带表示点密度/热度
  • polyline map(折线图地图) — 表示路线(步道、通勤等)
  • story map(故事地图) — 引导读者逐点游览、配滚动叙述的地图(ch-0013)
  • basemap(底图) — 地图底层的瓦片图层(raster/vector)
  • class intervals(分级间隔) — 把连续数值切成颜色区间的方式(ch-0001 提过)

原句摘录

...seeing the relative distance between points on a map, or identifying geographic patterns in a choropleth map (where colored polygons represent data values), relays information to readers' eyes more effectively than text, tables, or charts.

...remember that well-designed choropleth maps required normalized data and careful thought about color intervals.

疑问 / 待查

  • choropleth 的分级方法(等距/分位数等)本章浅尝,ch-0015 会从"说谎"角度再讲
  • 色盲友好配色(如 ColorBrewer)值得单列参考(见 notes.md)
Backlinks (1)
flowchart LR
  n0["ch-0001 Introduction(为什么做数据可视化)"]
  n1["ch-0002 选工具讲你的数据故事(Ch 1)"]
  n2["ch-0003 强化电子表格技能(Ch 2)"]
  n3["ch-0004 找到并质询你的数据(Ch 3)"]
  n4["ch-0005 清洗脏数据(Ch 4)"]
  n5["ch-0006 做有意义的比较(Ch 5)"]
  n6["ch-0007 图表化你的数据(Ch 6)"]
  n7["ch-0008 地图化你的数据(Ch 7)"]
  n8["ch-0009 表格化你的数据(Ch 8)"]
  n9["ch-0010 嵌入网页(Ch 9)"]
  n10["ch-0011 用 GitHub 编辑与托管代码(Ch 10)"]
  n11["ch-0012 Chart.js 与 Highcharts 模板(Ch 11)"]
  n12["ch-0013 Leaflet 地图模板(Ch 12)"]
  n13["ch-0014 转换你的地图数据(Ch 13)"]
  n14["ch-0015 识别谎言、减少偏差(Ch 14)"]
  n15["ch-0016 讲述并展示你的数据故事(Ch 15)"]
  n16["ch-0017 附录 A 排查常见问题"]
  n17["Hands-On Data Visualization(整理完成)"]
  n18["Hands-On Data Visualization 笔记"]
  n19["Reading"]
  n17 --> n0
  n17 --> n1
  n17 --> n2
  n17 --> n3
  n17 --> n4
  n17 --> n5
  n17 --> n6
  n17 --> n7
  n17 --> n8
  n17 --> n9
  n17 --> n10
  n17 --> n11
  n17 --> n12
  n17 --> n13
  n17 --> n14
  n17 --> n15
  n17 --> n16
  n17 --> n18
  n19 --> n17
  click n0 "../ch-0001/" "ch-0001 Introduction(为什么做数据可视化)"
  click n1 "../ch-0002/" "ch-0002 选工具讲你的数据故事(Ch 1)"
  click n2 "../ch-0003/" "ch-0003 强化电子表格技能(Ch 2)"
  click n3 "../ch-0004/" "ch-0004 找到并质询你的数据(Ch 3)"
  click n4 "../ch-0005/" "ch-0005 清洗脏数据(Ch 4)"
  click n5 "../ch-0006/" "ch-0006 做有意义的比较(Ch 5)"
  click n6 "../ch-0007/" "ch-0007 图表化你的数据(Ch 6)"
  click n7 "./" "ch-0008 地图化你的数据(Ch 7)"
  click n8 "../ch-0009/" "ch-0009 表格化你的数据(Ch 8)"
  click n9 "../ch-0010/" "ch-0010 嵌入网页(Ch 9)"
  click n10 "../ch-0011/" "ch-0011 用 GitHub 编辑与托管代码(Ch 10)"
  click n11 "../ch-0012/" "ch-0012 Chart.js 与 Highcharts 模板(Ch 11)"
  click n12 "../ch-0013/" "ch-0013 Leaflet 地图模板(Ch 12)"
  click n13 "../ch-0014/" "ch-0014 转换你的地图数据(Ch 13)"
  click n14 "../ch-0015/" "ch-0015 识别谎言、减少偏差(Ch 14)"
  click n15 "../ch-0016/" "ch-0016 讲述并展示你的数据故事(Ch 15)"
  click n16 "../ch-0017/" "ch-0017 附录 A 排查常见问题"
  click n17 "../" "Hands-On Data Visualization(整理完成)"
  click n18 "../notes/" "Hands-On Data Visualization 笔记"
  click n19 "../../" "Reading"