本书主要介绍了使用Python创建交互式数据可视化时需要了解的内容。首先介绍如何使用非交互式数据可视化库Matplotlib和Seabom绘制各种图。通过研究不同类型的可视化,了解如何选择一种特定类型的可视化来满足各种需求。对各种非交互式数据可视化库有所了解之后,将介绍创建直观且有说服力的数据可视化的有关原则,并使用Bokeh和Plotly将绘制的图转化为吸引人的故事。本书还会介绍交互式数据和模型可视化如何优化回归模型的性能。
前言
说明
这一节会简要介绍作者、本书内容、开始学习这本书所需的技能,以及完成本书所有实践活动和练习的硬件和软件需求。
关于本书
大量数据不断生成,迫切需要开发人员能够将数据有效又有趣的可视化呈现。本书将增进你的数据探索能力,可以为使用Python创建交互式数据可视化的学习提供一个非常好的起点。
首先你会学习如何使用非交互式数据可视化库Matplotlib和Seaborn绘制各种图。你将研究不同类型的可视化,对它们进行比较,并了解如何选择一种特定类型的可视化来满足你的需求。对各种非交互式数据可视化库有所了解之后,你将学习创建直观且有说服力的数据可视化的有关原则,并使用Altair、Bokeh和Plotly将你绘制的图转化为吸引人的故事。
学习完这本书,你将会拥有一组新的技能,帮助你成为能够将数据可视化转换为生动有趣故事的热门人才。
关于作者
AbhaBelorkar是计算机科学领域的一位教育工作者和研究人员。她在印度彼拉尼的博拉理工学院获得计算机科学学士学位,并在新加坡国立大学获得博士学位。目前她的研究工作包括开发基于统计学、机器学习和数据可视化技术的方法,从神经退行性疾病的异构基因组数据中获得见解。
SharathChandraGuntuku是自然语言处理和多媒体计算领域的一位研究人员。他在印度彼拉尼的博拉理工学院获得计算机科学学士学位,在新加坡南洋理工大学获得博士学位。他的研究目标是利用大规模的社交媒体图片和文本数据来模拟社会健康水平和心理特征。他使用机器学习、统计分析、自然语言处理和计算机视觉来回答有关个人和社区健康和心理的问题。
目录
前言
第1章 Python可视化介绍:基础和定制绘图 1
1.1 本章介绍 1
1.2 使用pandasDataFrame处理数据 2
1.2.1 从文件读取数据 2
1.2.2 练习1:从文件读取数据 2
1.2.3 观察和描述数据 3
1.2.4 练习2:观察和描述数据 3
1.2.5 从DataFrame选择列 6
1.2.6 为DataFrame增加新列 6
1.2.7 练习3:为DataFrame增加新列 6
1.2.8 在DataFrame列上应用函数 8
1.2.9 练习4:在DataFrame列上应用函数 8
1.2.10 练习5:对多列应用函数 11
1.2.11 从DataFrame删除列 12
1.2.12 练习6:从DataFrame删除列 12
1.2.13 将DataFrame写至文件 13
1.2.14 练习7:将DataFrame写至文件 13
1.3 使用pandas和seaborn绘图 15
1.3.1 创建简单图可视化显示变量分布 15
1.3.2 直方图 15
1.3.3 练习8:绘制和分析直方图 15
1.3.4 柱状图 18
1.3.5 练习9:创建柱状图并计算平均价格分布 18
1.3.6 练习10:创建按一个特定特征分组的柱状图 21
1.4 调整绘图参数 21
1.4.1 练习11:调整分组柱状图的绘图参数 21
1.4.2 标注 23
1.4.3 练习12:标注一个柱状图 23
1.4.4 实践活动1:分析不同场景并生成适当的可视化 25
1.5 小结 29
第2章 静态可视化:全局模式和汇总统计 31
2.1 本章介绍 31
2.2 绘图表示数据中的全局模式 31
2.2.1 散点图 32
2.2.2 练习13:创建一个静态散点图 33
2.2.3 六边形图 33
2.2.4 练习14:创建一个静态六边形图 33
2.2.5 等高线图 34
2.2.6 练习15:创建静态等高线图 34
2.2.7 折线图 35
2.2.8 练习16:创建一个静态折线图 36
2.2.9 练习17:用多个折线图表示数据随时间的变化 37
2.2.10 热图 39
2.2.11 练习18:创建和探索一个静态热图 39
2.2.12 热图中连锁的概念 43
2.2.13 练习19:在静态热图中创建连锁 43
2.3 绘图表示数据的汇总统计 46
2.3.1 再谈直方图 46
2.3.2 示例1:再谈直方图 46
2.3.3 箱形图 47
2.3.4 练习20:创建和探索静态箱形图 47
2.3.5 小提琴图 49
2.3.6 练习21:创建一个静态小提琴图 49
2.3.7 实践活动2:设计静态可视化表示全局模式和汇总统计 51
2.4 小结 53
第3章 从静态到交互式可视化 54
3.1 本章介绍 54
3.2 静态与交互式可视化 55
3.3 交互式数据可视化的应用 58
3.4 交互式数据可视化入门 60
3.4.1 使用Bokeh创建交互式数据可视化 61
3.4.2 练习22:准备数据集 62
3.4.3 练习23:为交互式数据可视化创建基本静态图 65
3.4.4 练习24:为这个静态图增加一个滑动条 67
3.4.5 练习25:增加一个悬停提示工具 69
3.4.6 使用PlotlyExpress创建交互式数据可视化 72
3.4.7 练习26:创建一个交互式散点图 72
3.4.8 实践活动3:使用PlotlyExpress创建不同的交互式可视化 76
3.5 小结 78
第4章 基于层次的数据交互式可视化 79
4.1 本章介绍 79
4.2 交互式散点图 80
4.2.1 练习27:为静态散点图增加放大缩小功能 81
4.2.2 练习28:为散点图增加悬停和工具提示功能 84
4.2.3 练习29:探索散点图上的选择和突出显示功能 86
4.2.4 练习30:生成一个提供选择、缩放和悬停/工具提示功能的图 88
4.2.5 跨多图选择 91
4.2.6 练习31:跨多图选择 92
4.2.7 基于特征值的选择 94
4.2.8 练习32:基于特征值的选择 95
4.3 altair中的其他交互式图 98
4.3.1 练习33:在静态柱状图上增加缩放特性并计算均值 98
4.3.2 练习34:在柱状图上表示均值的一个替代快捷方式 102
4.3.3 练习35:在静态热图上增加缩放特性 105
4.3.4 练习36:创建相邻的柱状图和热图 107
4.3.5 练习37:动态链接一个柱状图和一个热图 110
4.3.6 实践活动4:生成一个柱状图和一个热图表示GooglePlayStoreApps
数据集中的内容分级类型 113
4.4 小结 115
第5章 基于时间的数据交互式可视化 116
5.1 本章介绍 116
5.2 时态数据 117
5.3 时态数据类型 117
5.3.1 为什么研究时态数据可视化? 118
5.4 理解时态数据和时间序列数据的关系 119
5.5 使用时态数据的领域示例 120
5.6 时态数据可视化 120
5.6.1 如何管理和可视化时间序列数据 123
5.6.2 pandas中的日期/时间处理 124
5.6.3 建立一个Datetime索引 125
5.7 为时态数据选择正确的聚合等级 126
5.7.1 练习38:创建一个静态柱状图并计算时态数据的均值和标准差 127
5.7.2 练习39:计算zscore查找时态数据中的异常值 130
5.8 时态数据中的重采样 133
5.8.1 上采样和下采样的常见问题 134
5.8.2 练习40:时态数据的上采样和下采样 134
5.8.3 使用shift和tshift在时间序列数据中引入滞后 136
5.8.4 练习41:使用shift和tshift移动数据中的时间 137
5.8.5 时间序列中的自相关 139
5.9 交互式时态数据可视化 141
5.9.1 Bokeh基础 141
5.9.2 使用Bokeh的优点 141
5.9.3 练习42:使用Bokeh为静态折线图增加交互性 142
5.9.4 练习43:改变折线图中线的颜色和宽度 144
5.9.5 练习44:增加方框标注来找出数据集中的异常值 145
5.9.6 Bokeh中的交互性 147
5.9.7 实践活动5:创建一个交互式时态数据可视化 148
5.10 小结 150
第6章 地理数据交互式可视化 151
6.1 本章介绍 151
6.2 等值线地图 152
6.2.1 世界等值线地图 152
6.2.2 练习45:创建一个世界等值线地图 153
6.2.3 练习46:调整一个世界等值线地图 155
6.2.4 练习47:为等值线地图增加动画 159
6.2.5 美国各州地图 162
6.2.6 练习48:创建美国各州的等值线地图 163
6.3 在地理地图上绘图 165
6.3.1 散点图 166
6.3.2 练习49:在一个地理地图上绘制散点图 166
6.3.3 气泡图 168
6.3.4 练习50:在地理地图上绘制气泡图 168
6.3.5 地理地图上的折线图 174
6.3.6 练习51:在地理地图上绘制折线图 174
6.3.7 实践活动6:创建一个等值线地图表示全世界可再生能源生产和
消费总量 179
6.4 小结 183
第7章 避免创建交互式可视化的常见陷阱 184
7.1 本章介绍 184
7.2 数据格式化和解释 184
7.2.1 避免处理脏数据时常见的问题 185
7.2.2 异常值 185
7.2.3 练习52:使用箱形图可视化表示数据集中的异常值 186
7.2.4 练习53:处理异常值 189
7.2.5 缺失数据 191
7.2.6 练习54:处理缺失值 191
7.2.7 重复实例和/或特征 193
7.2.8 不好的特征选择 194
7.2.9 实践活动7:确定在一个散点图上可视化哪些特征 195
7.3 数据可视化 197
7.3.1 选择可视化 197
7.3.2 可视化数据时的常见陷阱 199
7.3.3 练习55:创建一个让人困惑的可视化 199
7.3.4 实践活动8:创建一个柱状图改善可视化 202
7.4 可视化过程速查表 203
7.5 小结 205
第8章 附录 207
8.1 第1章:Python可视化介绍:基础和定制绘图 207
8.1.1 实践活动1:分析不同场景并生成适当的可视化 207
8.2 第2章:静态可视化:全局模式和汇总统计 212
8.2.1 实践活动2:设计静态可视化表示全局模式和汇总统计 212
8.3 第3章:从静态到交互式可视化 215
8.3.1 实践活动3:使用PlotlyExpress创建不同的交互式可视化 215
8.4 第4章:基于层次的数据交互式可视化 219
8.4.1 实践活动4:生成一个柱状图和一个热图表示GooglePlayStoreApps
数据集中的内容分级类型 219
8.5 第5章:基于时间的数据交互式可视化 223
8.5.1 实践活动5:创建一个交互式时态数据可视化 223
8.6 第6章:地理数据交互式可视化 227
8.6.1 实践活动6:创建一个等值线地图表示全世界可再生能源生产和
消费总量 227
8.7 第7章:避免创建交互式可视化的常见陷阱 232
8.7.1 实践活动7:确定在一个散点图上可视化哪些特征 232
8.7.2 实践活动8:创建一个柱状图改善可视化 236