本书分为三部分:数据可视化基础知识部分包括前 3 章,主要介绍数据可视化的基础理论,包括概念、发展历史、流程、设计工具和原则,随后深入探讨了各种Python数据可视化库(如Matplotlib、Seaborn和Plotly等)在创建数据视图表示中的应用,以及Python中读取、清洗和处理数据的方法。Python数据可视化技术部分包括第4~8章,主要介绍了不同类型数据的可视化方法,包括时间数据、关系数据、比例数据、文本数据和复杂数据的可视化。Python数据可视化应用案例部分包括第9~12章,通过具体案例展示数据可视化的综合应用,包括用户消费行为可视化分析、世界杯数据可视化分析、手机购物评论可视化分析等。
本书既可以作为高等院校大数据、计算机、软件及相关专业的教材,也可以作为软件从业人员、计算机爱好者的参考用书。
在当前的研究、教学和开发领域中,数据可视化扮演着极为关键且活跃的角色。特别是在大数据时代,面对不断增长的数据规模和种类,可视化已经成为各个领域不可或缺的信息传递工具,也是快速理解数据的必要手段。
Python作为一门强大的编程语言,在数据可视化领域占据核心地位。其丰富的数据可视化库,如Matplotlib、Seaborn和Plotly等,为处理和展示大规模、多样化数据集提供了便利。通过Python及其相关库进行合理的可视化设计,管理者能够将关键数据整合到图表中,从复杂的数据中提取有价值的信息,帮助人们从庞杂的数据表格中解脱出来。此外,结合机器学习等技术,Python的数据可视化工具不仅有助于理解历史数据规律,还能预测未来趋势,在快速变化的网络时代中占得先机。
现代社会几乎每一个领域都在积极地或被动地应用大数据思维和方法,以优化管理、促进生产力提升。然而,对于大数据可视化,许多人存在一些误解。尽管大数据指的是体量大、速度快且数据类型多样的数据集,但这并不意味着所有数据都需要进行可视化处理。尽管计算机硬件性能飞速提升,但过度的可视化可能导致算力浪费、成本增加及可视化速度下降。优秀的可视化展示应呈现最有价值、最能影响决策的信息,而非所有数据都需要通过视觉手段来表达。另外,并非仅高质量的数据才值得可视化,对于低质量数据,简单的可视化也有助于快速定位错误。可视化虽能省去诸多麻烦,但不能完全依赖它来做出正确决策,而一些视觉效果过度突出的糟糕可视化还可能传达误导性信息。
本书的主要内容是Python数据可视化技术,这是应用和研究领域的热点,也是一门非常复杂的技术。本书重点讲解基础知识和常用软件,并提供相应的Python代码示例,同时简要介绍前沿技术。章后配有丰富的习题和实训内容,旨在帮助读者了解Python及基于Python的数据可视化技术。
本书的作者为吕云翔、杨壮、姚泽良、朱英豪、王肇一、冯凯文,曾洪立参与了部分内容的编写及资料整理工作。
由于编者水平有限,书中内容难免会有疏漏之处,恳请各位同仁和广大读者给予批评指正,也希望您能将实践过程中的经验和心得与我们交流。
吕云翔,从2003年在北航软件学院工作以来,一直讲授本科生的计算机导论、职业生涯规划和软件工程这三门课,以及研究生的软件工程课(全英文,2003-2007)。在教学上能够认真备课,积极探索,并且能够将大量的教学经验(从1986年开始从教)应用到实际的教学中,教学效果良好,使学生能够很好地掌握相关的知识和技能。2009年获得北航软件学院第一届教学比赛二等奖。从2011年开始,以全英文的方式讲授计算机导论课程。作为研究生指导教师先后指导了近200名研究生的毕业答辩。作为本科生指导教师,指导了本科毕业设计的学生近100名。在指导的过程中,取得的效果良好。先后以第一作者著、编著和翻译了二十多本书。2009年获得北航软件学院著书特别奖。获北航教学成果二等奖一项(2012),三等奖两项(2010、2014)。
前言
第1章 数据可视化概述 1
1.1 数据可视化简介 1
1.2 数据可视化的发展历史 3
1.3 数据可视化流程 6
1.4 数据可视化设计工具和原则 9
1.4.1 可视化数据组织与管理工具 9
1.4.2 可视化设计原则 10
1.5 Python与数据可视化 12
1.6 习题 13
第2章 Python数据可视化库 15
2.1 Matplotlib 15
2.1.1 Matplotlib简介 15
2.1.2 Matplotlib的安装和使用 16
2.2 Seaborn 17
2.2.1 Seaborn简介 17
2.2.2 Seaborn的安装和使用 17
2.3 Scikit-plot 18
2.3.1 Scikit-plot简介 18
2.3.2 Scikit-plot 的安装和使用 19
2.4 Python-igraph 21
2.4.1 Python-igraph简介 21
2.4.2 Python-igraph 的安装和使用 21
2.5 NetworkX 22
2.5.1 NetworkX简介 22
2.5.2 NetworkX的安装和使用 22
2.6 Pyecharts 23
2.6.1 Pyecharts简介 23
2.6.2 Pyecharts的安装和使用 24
2.7 HoloViews 25
2.7.1 HoloViews简介 25
2.7.2 HoloViews的安装和使用 25
2.8 Plotly 26
2.8.1 Plotly简介 26
2.8.2 Plotly的安装和使用 26
2.9 Wordcloud 27
2.9.1 Wordcloud简介 27
2.9.2 Wordcloud的安装和使用 28
2.10 习题 29
2.11 实训:Python可视化环境配置 30
第3章 Python数据读取与处理 31
3.1 Python数据读取与查看 31
3.1.1 Python的文件读写 31
3.1.2 对象序列化 33
3.1.3 CSV文件的读写 34
3.1.4 数据库的操作 36
3.1.5 SQLite3的操作 38
3.2 Python数据清洗 40
3.3 Pandas读取与处理表格数据 41
3.3.1 读取表格数据 42
3.3.2 处理表格数据 42
3.4 NumPy处理数据 44
3.5 Scikit-learn处理数据 46
3.6 习题 47
3.7 实训:使用Kaggle实现数据下载、读取与预处理 48
第4章 Python时间数据可视化 50
4.1 时间数据在大数据中的应用 50
4.2 连续型时间数据可视化 51
4.2.1 阶梯图 51
4.2.2 折线图 53
4.2.3 南丁格尔玫瑰图 54
4.2.4 热图 57
4.2.5 脊线图 58
4.3 离散型时间数据可视化 60
4.3.1 散点图 61
4.3.2 柱形图 62
4.3.3 堆叠柱形图 63
4.3.4 点线图 66
4.4 习题 67
4.5 实训:使用Matplotlib实现绘图与主题更改 69
第5章 Python关系数据可视化 70
5.1 关系数据在大数据中的应用 70
5.2 数据关联性的可视化 70
5.2.1 散点图 71
5.2.2 散点图矩阵 71
5.2.3 气泡图 72
5.3 数据分布性的可视化 74
5.3.1 茎叶图 75
5.3.2 直方图 75
5.3.3 密度图 77
5.4 习题 79
5.5 实训:使用Seaborn实现绘图与主题更改 80
第6章 Python比例数据可视化 81
6.1 比例数据在大数据中的应用 81
6.2 部分与整体 81
6.2.1 饼图 81
6.2.2 环形图 83
6.2.3 比例中的堆叠 84
6.2.4 矩形树图 86
6.2.5 和弦图 87
6.2.6 旭日图 89
6.3 时空比例数据可视化 91
6.4 习题 93
6.5 实训:使用Pyecharts构建数据大屏 95
第7章 Python文本数据可视化 96
7.1 文本数据在大数据中的应用及提取 96
7.1.1 文本数据在大数据中的应用 96
7.1.2 使用网络爬虫提取文本数据 97
7.2 文本内容可视化 98
7.2.1 标签云 98
7.2.2 主题河流 100
7.3 文本关系可视化 102
7.3.1 词语树 102
7.3.2 短语网络 104
7.4 习题 106
7.5 实训:使用HoloViews库构建数据大屏 107
第8章 Python复杂数据可视化 109
8.1 高维多元数据在大数据中的应用 110
8.1.1 空间映射法 111
8.1.2 图标法 116
8.2 三维数据可视化 118
8.2.1 三维曲面图 118
8.2.2 三维等高线图 120
8.3 习题 122
8.4 实训:使用Pyecharts库构建可交互图表 123
第9章 案例:用户消费行为分析 124
9.1 RFM简介 124
9.2 数据读入 124
9.3 数据清洗和预处理 125
9.3.1 数据清洗 125
9.3.2 数据预处理 126
9.4 RFM统计量计算 127
9.5 RFM 归类 127
9.6 结果保存 129
9.7 可视化 129
9.8 流程总结 131
第10章 案例:世界杯数据分析 132
10.1 数据说明 132
10.2 世界杯观众可视化分析 134
10.3 世界杯冠军数据可视化分析 140
10.4 世界杯比赛数据可视化分析 143
10.5 世界杯进球数据可视化分析 150
第11章 案例:利用手机的购物评论分析手机特征 155
11.1 案例介绍 155
11.2 从Kaggle上下载数据 155
11.3 对数据进行清洗 159
11.3.1 NumPy和Pandas及其安装 159
11.3.2 筛选出想要的数据 160
11.4 分析数据 163
11.4.1 模型介绍 163
11.4.2 算法应用 164
11.5 案例总结 176
第12章 案例:科比职业生涯进球可视化分析 177
12.1 案例介绍 177
12.2 预处理 177
12.3 命中率可视化分析 181
12.4 投篮习惯可视化分析 196
参考文献 203