第1 篇 入门
第1 章 Altair 的环境配置 . 4
1.1 Altair 的安装 . 4
1.2 前端渲染工具的安装和启动方法 . 5
1.2.1 Jupyter Notebook 的安装和启动方法 5
1.2.2 JupyterLab 的安装和启动方法 5
1.3 vega_datasets 的使用 6
1.4 JSON 简介 . 9
1.4.1 JSON 语法规则. 9
1.4.2 在Altair 中使用JSON . 10
1.5 Pandas 的数据框(DataFrame)对象的使用方法 .12
1.5.1 使用字典创建DataFrame 的方法 12
1.5.2 DataFrame 的操作方法 13
1.5.3 缺失值的操作方法 . 15
1.5.4 条件查询的操作方法 . 22
1.6 数据加工器 . 27
第2 章 Altair 的图形语法 . 30
2.1 图形语法简介 . 30
2.1.1 图形语法的原理 . 31
2.1.2 图形的视觉对象的组合原则 . 33
2.1.3 Altair 图形系统的组成模块 . 40
2.2 声明式统计可视化的意义和优势 . 43
2.3 Altair 的语法规则 . 46
2.3.1 Altair 的数据结构 . 46
2.3.2 Altair 的基本对象 . 48
2.3.3 Altair 的展示方法 . 56
2.3.4 Altair 的存储方法 . 59
第2 篇 进阶
第3 章 认识数据 65
3.1 名义型变量和数量型变量组合的经典图形 66
3.1.1 柱形图 . 66
3.1.2 条形图 . 67
3.1.3 条形码图 . 67
3.2 时间型变量和数量型变量组合的经典图形 68
3.2.1 折线图 . 68
3.2.2 动手实践:调整折线图的刻度标签 . 70
3.2.3 次序型变量(时间变量离散化)和数量型变量组合:柱形图 72
3.2.4 动手实践:面积图 . 74
3.2.5 动手实践:阶梯图 . 76
3.2.6 练习:比较不同年份7 月的日降雨量 . 78
3.2.7 动手实践:分类汇总天气类型的频数分布 . 78
3.2.8 练习:总结分类汇总天气类型频数分布的实现方法 81
3.2.9 斜率图 . 81
3.2.10 数据集类型的数据结构形式 . 82
3.3 时间型变量和名义型变量的组合:甘特图 85
3.4 数量型变量和数量型变量组合的经典图形 87
3.4.1 散点图 . 87
3.4.2 动手实践:气泡图 . 89
3.4.3 动手实践:缺失值的可视化识别方法 . 90
3.4.4 直方图 . 91
3.4.5 热力图 . 94
3.4.6 变量类型对颜色标尺的作用 . 96
3.4.7 动手实践:展示不同时间的最高气温的分布情况 96
3.4.8 动手实践:展示文本注释与颜色的映射关系 . 99
第4 章 理解数据 105
4.1 使用子区通道分区理解数据 105
4.1.1 比较不同地区的汽车马力分布情况 . 106
4.1.2 动手实践:分区展示不同年份的每月平均降雨量 108
4.1.3 练习:绘制不同月份的年平均降雨量时间序列图 109
4.2 使用分层图形综合理解数据 110
4.2.1 使用描述统计量刻画变量取值的分布偏斜方向和程度 111
4.2.2 练习:绘制风速的均值、最大值和最小值的趋势变化曲线 . 115
4.3 通过连接图形全面理解数据 115
4.3.1 散点图连接直方图了解更多的变量信息 116
4.3.2 练习:散点图连接水平直方图和垂直直方图,分别刻画降雨量和
风速的频数分布 118
4.4 使用变量矩阵分区理解数据 119
第5 章 探索数据 123
5.1 让鼠标光标停留在标记上出现变量取值提示 123
5.1.1 实现方法 . 123
5.1.2 练习:时间序列图的时间型变量和数量型变量的提示文本 125
5.2 点击鼠标和拖曳鼠标实现图形区域选择 127
5.2.1 实现方法 . 127
5.2.2 动手实践:动态选定时间区间的时间序列面积图 132
5.3 点击鼠标实现标记选择 . 137
5.3.1 实现方法 . 137
5.3.2 动手实践:滑动鼠标实现标记选择 . 139
5.4 点击鼠标实现图形区域选择 140
5.4.1 实现方法 . 140
5.4.2 动手实践:滑动鼠标实现图形区域的选择 . 142
5.4.3 练习:鼠标光标悬停在注释文本上交互显示标记 143
5.4.4 动手实践:缺失值的可视化识别方法2 144
5.5 元素交互实现图形区域选择 147
5.5.1 点选下拉列表实现图形区域的选择 . 148
5.5.2 练习:使用条件查询过滤数据记录,实现图形区域的选择 150
5.5.3 使用单选按钮实现图形区域的选择 . 151
5.5.4 动手实践:使用连接图形以图形联动方式实现图形区域的选择 . 152
5.5.5 练习:点选图例的标记符号实现图形区域的选择 155
5.5.6 拖动滑块实现图形区域的选择 . 155
第3 篇 实践
第6 章 应用数据 161
6.1 滑珠图 .161
6.1.1 比较不同国家人群的预期寿命的变化情况 . 161
6.1.2 动手实践:使用网格线表示滑竿的滑珠图 . 163
6.1.3 练习:描绘数量波动的总体趋势――棒棒糖图 166
6.2 连线散点图 .168
6.2.1 探索不同年份的数量变化 . 168
6.2.2 动手实践:使用文本注释使连线散点图成为时间故事线 . 172
6.3 箱线图 . 173
6.3.1 探索不同天气类型的风速分布特征和分布形态 174
6.3.2 动手实践:垂直连接分区直方图补充箱线图的分布特征 176
6.3.3 水平连接分区直方图补充箱线图的分布特征 . 178
6.3.4 核密度估计加工器 . 179
6.3.5 动手实践:通过比较均值和众数的大小分析概率密度曲线的
偏斜方向和程度 . 181
6.3.6 数据离散加工器 . 181
6.3.7 数据汇总连接加工器 . 185
6.3.8 动手实践:计算小雨天气的出现天数 . 188
6.3.9 练习:按照月份统计不同降雨量类型出现的天数 190
6.4 探索数据的累积汇总和秩的排序及滞后变换――窗口变换加工器 .191
6.4.1 窗口变换加工器的应用 . 191
6.4.2 动手实践:累积求和的柱形图 . 193
6.4.3 指数图 . 195
6.4.4 动手实践:秩的排序 . 198
6.4.5 凹凸图 . 201
6.4.6 动手实践:滞后等值和领先等值 . 206
6.4.7 瀑布图 . 209
6.4.8 练习:销售量的相对变化量 . 214
6.5 分散型堆积条形图系列 . 215
6.5.1 分散型堆积条形图 . 215
6.5.2 漏斗图 . 217
6.5.3 动手实践:离散化的颜色标尺 . 221
6.5.4 旋风图 . 224
6.5.4 动手实践:堆积条形图的分层图形――子弹头图 227
6.5.5 练习:将堆积条形图变成分层条形图――温度计图 230
6.6 堆积柱形图系列 231
6.6.1 堆积柱形图 . 231
6.6.2 堆积百分比柱形图 . 235
6.7 面积图系列 . 236
6.7.1 堆积百分比面积图 . 236
6.7.2 量化波形图 . 237
6.8 置信区间的应用 239
6.8.1 置信区间 . 239
6.8.2 误差棒图 . 241
6.8.3 动手实践:样本容量对样本标准差和样本均值的标准误的影响 . 245
第7 章 案例研究 248
7.1 不同数量级和单位变量关系的探索分析 248
7.1.1 使用平行坐标图分析数量型变量的相关关系 . 249
7.1.2 使用矩阵散点图分析连续型变量的相关关系 . 251
7.1.3 建立马力和重量的一元线性回归模型 . 252
7.1.4 练习:建立生产年份和重量的置信带与回归直线 265
7.1.5 动手实践:建立关于生产年份的重量分布脊线图 266
7.1.6 动手实践:建立马力和单位里程数的非线性回归模型 . 268
7.2 金融时间序列数据的探索分析 . 270
7.2.1 5 只股票的价格波动探索分析 271
7.2.2 5 只股票的频数分布探索分析 274
7.2.3 比较不同股票的价格走势图 . 275
7.2.4 股票收益率的迷你折线图 . 277
7.2.5 股票波动率的迷你柱形图 . 278
7.2.6 绘制股票收盘价的移动平均线 . 281
7.2.7 绘制股票的K 线图(蜡烛图) 283
7.2.8 动手实践:绘制移动平均线和K 线图的分层图形 . 285
7.2.9 练习:使用柱线图(棒形图)代替K 线图 . 289
7.3 自然语言处理的可视化模型的构建和应用 . 289
7.3.1 读取文本数据 . 290
7.3.2 存储单词和字母的频数分布 . 292
7.3.3 使用条形图分析字母的频数 . 293
7.3.4 使用条形图分析高频词 . 295
7.3.5 使用词云图分析段落词语的运用特点 . 296
7.4 反映统计数字的象形图 . 299
7.5 可视化模型框架的数据流转过程与模型存储和渲染方法 303
7.5.1 使用Pandas 的实例方法to_json()和Altair 的函数to_values()
完成数据流转 . 304
7.5.2 使用Altair 的函数to_json()和函数to_values()完成数据流转 305
7.5.3 可视化模型的存储和渲染方法 . 305
7.6 调整坐标轴的量尺类型的实现方法和应用场景 . 306
7.6.1 选择合适的坐标轴量尺类型 . 306
7.6.2 使用气泡图描绘3 个数量型变量的数量关系 . 307
7.6.3 动手实践:按照年份查看人均收入、寿命和人口数量的
动态变化关系 . 309
7.6.4 使用连续型量尺离散化的方法转换变量类型 . 312
7.7 使用波形图和频谱图分析音频文件 . 314
7.7.1 使用波形图分析音频文件的声音变化 . 314
7.7.2 使用频谱图分析音频文件的频率变化 . 315
7.7.3 练习:使用仪表盘分析音频文件的元数据 . 317
7.8 视觉图像的大块数据文件处理和统计可视化 318
第4 篇 拓展
第8 章 探索分析辅助工具 . 327
8.1 包sviewgui 的使用方法 . 327
8.1.1 sviewgui 加载数据和读取数据的方法 328
8.1.2 CSV 文件的GUI 具体功能和使用方法 . 329
8.1.3 数据框对象的GUI 具体功能和使用方法 331
8.2 数据框对象统计可视化的实现方法 . 334
8.2.1 折线图 . 334
8.2.2 核密度估计图 . 336
8.2.3 直方图 . 338
8.2.4 散点图 . 340
8.2.5 六边形网格图 . 341
8.2.6 箱线图 . 341
第9 章 颜色的使用方法和属性配置的作用域 . 343
9.1 颜色方案的设置方法 343
9.2 动手实践:使用颜色方案accent 设置标记属性通道color 的
配色模式 346
9.3 变量与颜色的映射关系的设置方法 . 347
9.4 原始颜色编码数据的设置方法 . 348
9.5 属性配置的作用域 . 349
附录A 本书练习详解 . 352
3.2.6 练习:比较不同年份7 月的日降雨量 . 352
3.2.8 练习:总结分类汇总天气类型频数分布的实现方法 354
4.1.3 练习:绘制不同月份的年平均降雨量时间序列图 355
4.2.2 练习:绘制风速的均值、最大值和最小值的趋势变化曲线 356
4.3.2 练习:散点图连接水平直方图和垂直直方图,分别刻画降雨量和
风速的频数分布 . 358
5.1.2 练习:时间序列图的时间型变量和数量型变量的提示文本 359
5.4.3 练习:鼠标光标悬停在注释文本上交互显示标记 360
5.5.2 练习:使用条件查询过滤数据记录,实现图形区域的选择 362
5.5.5 练习:点选图例的标记符号实现图形区域的选择 364
6.1.3 练习:描绘数量波动的总体趋势――棒棒糖图 365
6.3.9 练习:按照月份统计不同降雨量类型出现的天数 367
6.4.8 练习:销售量的相对变化量 . 369
6.5.5 练习:将堆积条形图变成分层条形图――温度计图 370
7.1.4 练习:建立生产年份和重量的置信带与回归直线 373
7.2.9 练习:使用柱线图(棒形图)代替K 线图 . 374
参考文献 376