
本书详细阐述了与Python数据可视化相关的基本解决方案,主要包括数据可视化和数据探索的重要性、绘图知识、Matplotlib、利用Seaborn简化可视化操作、绘制地理空间数据、基于Bokeh的交互式操作等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
前 言
关于本书
本书将介绍数据可视化的内容及其重要性。随后,读者将学习如何计算平均值、中位数和方差以了解统计学方面的知识,并观察对应数值之间的差异。除此之外,读者还将学习关键的NumPy和Pandas技术,如索引、切片、迭代、过滤和分组机制。接下来,将介绍可视化的不同类型并对其进行比较。据此,读者将能够了解如何选取特定的可视化类型。其间,读者将探讨不同的图表,同时还包括自定义图表。
在了解了各种可视化库之后,读者将学习如何使用Matplotlib和Seaborn简化可视化的创建过程。除此之外,本书还将引入高级可视化技术,如地理图和交互式图表。读者将学习如何利用地理空间数据创建交互式可视化内容,并可集成至Web页面中。我们可通过任意数据集构建美观且具有洞察力的可视化内容。通过等值线图以及Bokeh,我们还将学习如何在地图上绘制地理空间数据,并通过添加微件和动画显示信息扩展图表。
最后,本书将对所学知识进行整合,读者将得到一个新的数据集,并以此创建一个具有洞察力的可视化图表。
本书目标
? 了解各种图表及其最佳用例。
? 与不同的绘图库协同工作并讨论其优缺点。
? 学习如何创建具有洞察力的可视化内容。
? 了解创建优良可视化图表的所需条件。
? 提升Python数据整理技能。
? 学习相关的业界标准工具。
? 了解数据格式和表达方式。
适合读者
本书是针对想步入数据科学领域的开发人员和相关人士而编写的,他们希望通过数据可视化进一步丰富其个人专业项目。在阅读本书之前,读者不需要具备数据分析和可视化方面的经验,但需要了解Python的基本知识以及高中水平的数学知识。尽管本书是一本入门级的数据可视化书籍,但具有一定经验的读者仍可从中受益,并可通过真实数据提升他们的Python技能。
本书以通俗易懂的语言讲述了数据可视化技术,并完美地平衡了理论与实践之间的内容。具体来说,每一章内容都是在前一章的基础上加以设计的。另外,本书还包含了多项操作,并在现实生活中的业务场景和高度相关的环境中实践、运用所学的技能。
软件和硬件需求
为了获得最佳体验,推荐使用以下硬件配置。
? 操作系统:Windows 7 SP1 32/64-bit,Windows 8.1 32/64-bit,Windows 10 32/64-bit,Ubuntu 14.04(及后续版本),macOS Sierra(及后续版本)。
? 处理器:双核或更高配置。
? 内存:4GB RAM。
? 存储:10GB可用空间。
除此之外,读者还需要安装下列软件。
? 浏览器:Google Chrome或Mozilla Firefox。
? Conda。
? JupyterLab和Jupyter Notebook。
? Sublime Text(最新版本)、Atom IDE(最新版本)或其他类似的文本编辑应用程序。
? Python 3。
? 安装以下Python库:NumPy、pandas、Matplotlib、seaborn、geoplotlib、Bokeh和squarify。
本书约定
本书通过不同的文本风格区分相应的信息类型。下面通过一些示例对此类风格以及具体含义的解释予以展示。
代码块如下所示。
# indexing the first value of the second row (1st row, 1st value)
first_val_first_row = dataset[0][0]
np.mean(first_val_first_row)
安装和配置过程
在阅读本书之前,需要安装Python 3.6、pip以及其他库,具体操作步骤如下。
安装Python
读者可访问https://realpython.com/installing-python/并遵循相关指令安装Python。
安装pip
(1)访问https://pip.pypa.io/en/stable/installing/并下载get-pip.py文件。
(2)使用下列命令进行安装:
python get-pip.py
考虑到计算机中Python之前的版本已经使用了Python命令,因而这里可能需要使用python3 get-pip.py命令。
安装库
使用pip命令安装库,如下所示。
python -m pip install --user numpy matplotlib jupyterlab pandas squarify bokeh geoplotlib seaborn
与JupyterLab和Jupyter Notebook协同工作
读者可能需要在JupyterLab中针对不同练习和操作展开工作。对此,可访问https://github.com/TrainingByPackt/Data-Visualization-with-Python下载相关内容。
读者可使用GitHub进行下载,或者单击右上角的Clone or download按钮,并以压缩文件方式进行下载。
当打开Jupyter Notebook时,需要通过终端遍历目录。对此,可输入下列命令:
cd Data-Visualization-with-Python/chapter01/
随后执行下列步骤:
(1)使用cd命令访问文件夹,如下所示。
cd Activity01
(2)调用jupyter-lab启用JupyterLab。类似地,对于Jupyter Notebook,可调用jupyter notebook命令。
导入Python库
本书中的练习和操作都需要使用各种库,其导入过程较为简单,具体各项操作步骤如下所示。
(1)当导入诸如NumPy和pandas时,可运行以下代码,这将把全部NumPy库导入当前文件中。
import numpy # import numpy
(2)可利用np而非numpy调用numpy中的方法,如下所示。
import numpy as np # import numpy and assign alias np
(3)导入部分内容。下列代码仅加载库中的mean方法。
from numpy import mean # only import the mean method of numpy
安装代码包
将类的代码包复制至C:/Code文件夹中。
附加资源
读者可访问https://github.com/TrainingByPackt/Data-Visualization-with-Python查看本书的代码包。
除此之外,读者还可访问https://github.com/PacktPublishing/查看其他代码包以及视频内容。
目 录
第1章 数据可视化和数据探索的重要性 1
1.1 简介 1
1.1.1 数据可视化简介 1
1.1.2 数据可视化的重要性 2
1.1.3 数据整理 2
1.1.4 可视化工具和库 3
1.2 统计学概述 4
1.2.1 集中趋势的度量 5
1.2.2 离散度测量 6
1.2.3 相关性 6
1.2.4 数据类型 7
1.2.5 摘要统计信息 7
1.3 NumPy 8
1.3.1 练习1:加载示例数据集并计算平均值 9
1.3.2 操作1:使用NumPy计算平均值、中位数、方差和标准偏差 12
1.3.3 基本的NumPy操作 13
1.3.4 操作2:索引、切片、分割和迭代 14
1.3.5 高级NumPy操作 15
1.3.6 操作3:过滤、排序、组合和重构 16
1.4 pandas 17
1.4.1 pandas的优点 17
1.4.2 pandas的缺点 18
1.4.3 练习2:加载示例数据集并计算平均值 18
1.4.4 操作4:使用pandas计算平均值、中位数和给定数字的方差 22
1.4.5 基本的pandas操作 22
1.4.6 Series 23
1.4.7 操作5:基于pandas的索引、切片和迭代 24
1.4.8 pandas高级操作 24
1.4.9 操作6:过滤、排序和重构 25
1.5 本章小结 26
第2章 绘图知识 29
2.1 简介 29
2.2 比较图 29
2.2.1 线形图 30
2.2.2 柱状图 31
2.2.3 雷达图 33
2.2.4 操作7:员工技能比较 35
2.3 关系图 36
2.3.1 散点图 37
2.3.2 气泡图 40
2.3.3 相关图 40
2.3.4 热图 42
2.3.5 操作8:20年内道路交通事故统计 44
2.4 合成图 44
2.4.1 饼图 44
2.4.2 堆叠式柱状图 46
2.4.3 堆叠式面积图 48
2.4.4 操作9:智能手机销售额 49
2.4.5 维恩图 50
2.5 分布图 50
2.5.1 直方图 51
2.5.2 密度图 51
2.5.3 箱形图 52
2.5.4 小提琴图 54
2.5.5 操作10:不同时间区间内列车的频率 56
2.6 地理图 56
2.6.1 点图 57
2.6.2 等值区域图 58
2.6.3 连接图 59
2.7 良好的设计规则 60
2.7.1 一般的设计实践 60
2.7.2 操作11:确定理想的可视化操作 60
2.8 本章小结 62
第3章 Matplotlib 63
3.1 简介 63
3.2 Matplotlib中的图表 63
3.3 pyplot基本知识 65
3.3.1 创建Figure 65
3.3.2 关闭Figure 66
3.3.3 格式化字符串 66
3.3.4 绘制机制 67
3.3.5 利用pandas DataFrame绘制 69
3.3.6 显示Figure 69
3.3.7 保存Figure 69
3.3.8 创建简单的可视化内容 70
3.4 基本的文本和图例功能 71
3.4.1 标记 72
3.4.2 标题 72
3.4.3 文本 72
3.4.4 标注 72
3.4.5 图例 73
3.4.6 操作12:利用线形图可视化股票的走势 73
3.5 基本图表 74
3.5.1 柱状图 74
3.5.2 操作13:比较影片评分的柱状图 76
3.5.3 饼图 77
3.5.4 创建耗水量饼图 78
3.5.5 堆叠式柱状图 80
3.5.6 操作14:餐厅业绩的可视化结果 80
3.5.7 堆叠式面积图 81
3.5.8 操作15:利用堆叠式面积图比较智能手机的销售状态 82
3.5.9 直方图 83
3.5.10 箱形图 85
3.5.11 操作16:智商的直方图和箱形图 86
3.5.12 散点图 87
3.5.13 操作17:利用散点图可视化动物间的相关性 88
3.5.14 气泡图 89
3.6 布局 90
3.6.1 子图 90
3.6.2 紧凑型子图 92
3.6.3 雷达图 94
3.6.4 与雷达图协同工作 94
3.6.5 GridSpec 96
3.6.6 操作18:基于边缘直方图创建散点图 97
3.7 图像 98
3.7.1 基本的图像操作 98
3.7.2 操作19:在网格中绘制多幅图像 103
3.8 编写数学表达式 103
3.9 本章小结 104
第4章 利用Seaborn简化可视化操作 105
4.1 简介 105
4.2 控制Figure观感 106
4.2.1 图形样式 108
4.2.2 移除轴向 110
4.2.3 上下文 111
4.2.4 操作20:利用箱形图比较不同测试分组中的IQ值 112
4.3 调色板 113
4.3.1 分类调色板 114
4.3.2 连续调色板 115
4.3.3 离散调色板 116
4.3.4 操作21:利用热图发现航班数据中的模式 117
4.4 Seaborn中的图表 118
4.4.1 柱状图 118
4.4.2 操作22:电影评分比较 119
4.4.3 核密度估算 119
4.4.4 相互关系的可视化 122
4.4.5 小提琴图 123
4.4.6 操作23:利用小提琴图比较不同测试组中的IQ值 124
4.5 Seaborn中的多图表 125
4.5.1 FacetGrid 125
4.5.2 操作24:前30个YouTube频道 126
4.6 回归图 127
4.7 Squarify库 129
4.8 本章小结 130
第5章 绘制地理空间数据 131
5.1 简介 131
5.1.1 Geoplotlib的设计原理 132
5.1.2 地理空间可视化 133
5.1.3 简单地理空间数据的可视化 134
5.1.4 操作27:绘制地图上的地理空间数据 138
5.1.5 采用GeoJSON数据的等值线图 140
5.2 图块提供商 144
5.3 自定义层 148
5.4 本章小结 149
第6章 基于Bokeh的交互式操作 151
6.1 简介 151
6.1.1 Bokeh的基本概念 152
6.1.2 Bokeh中的接口 152
6.1.3 输出 153
6.1.4 Bokeh服务器 153
6.1.5 演示 154
6.1.6 集成 155
6.1.7 利用Bokeh进行绘制 155
6.1.8 比较plotting和models接口 161
6.2 添加微件 169
6.2.1 基本的交互式微件 169
6.2.2 操作29:利用微件扩展图表 179
6.3 本章小结 180
第7章 知识整合 181
7.1 简介 181
7.1.1 操作30:实现Matplotlib和Seaborn操作 181
7.1.2 操作31:利用Bokeh可视化股票价格 184
7.1.3 geoplotlib 185
7.1.4 操作32:利用geoplotlib分析Airbnb数据 185
7.2 本章小结 186
附录 189
第1章 数据可视化和数据探索的重要性 189
操作1:使用NumPy计算平均值、中位数、方差和标准偏差 189
操作2:索引、切片、分割和迭代 192
操作3:过滤、排序、组合和重构 197
操作4:使用pandas计算平均值、中位数和给定数字的方差 200
操作5:基于pandas的索引、切片和迭代 204
操作6:过滤、排序和重构 209
第2章 绘图知识 215
操作7:员工技能比较 215
操作8:20年内道路交通事故统计 215
操作9:智能手机销售额 215
操作10:不同时间区间内列车的频率 215
操作11:确定理想的可视化操作 216
第3章 Matplotlib 218
操作12:利用线形图可视化股票的走势 218
操作13:比较影片评分的柱状图 219
操作14:餐厅业绩的可视化结果 220
操作15:利用堆叠式面积图比较智能手机的销售状态 222
操作16:智商的直方图和箱形图 223
操作17:利用散点图可视化动物间的相关性 225
操作18:基于边缘直方图创建散点图 226
操作19:在网格中绘制多幅图像 228
第4章 利用Seaborn简化可视化操作 229
操作20:利用箱形图比较不同测试分组中的IQ值 229
操作21:利用热图发现航班数据中的模式 231
操作22:电影评分比较 232
操作23:利用小提琴图比较不同测试组中的IQ值 233
操作24:前30个YouTube频道 235
操作25:线性回归 237
操作26:耗水量 238
第5章 绘制地理空间数据 239
操作27:绘制地图上的地理空间数据 239
操作28:与自定义层协同工作 246
第6章 基于Bokeh的交互式操作 249
操作29:利用微件扩展图表 249
第7章 知识整合 255
操作30:实现Matplotlib和Seaborn操作 255
操作31:利用Bokeh可视化股票价格 261
操作32:利用geoplotlib分析Airbnb数据 268
古谚有云“一图胜千言”,这在不同的文化背景中均广为人知。本书是针对想步入数据科学领域的开发人员和相关人士而编写的,他们希望通过数据可视化进一步丰富其个人专业项目。本书以通俗易懂的语言讲述了数据可视化技术,并完美地平衡了理论与实践之间的内容。具体来说,每一章内容都是在前一章的基础上加以设计的。另外,本书还包含了多项操作,并在现实生活中的业务场景和高度相关的环境中实践、运用所学的技能。
古谚有云“一图胜千言”,这在不同的文化背景中均广为人知。本书是针对想步入数据科学领域的开发人员和相关人士而编写的,他们希望通过数据可视化进一步丰富其个人专业项目。本书以通俗易懂的语言讲述了数据可视化技术,并完美地平衡了理论与实践之间的内容。具体来说,每一章内容都是在前一章的基础上加以设计的。另外,本书还包含了多项操作,并在现实生活中的业务场景和高度相关的环境中实践、运用所学的技能。