Python数据可视化之matplotlib实践
  • 推荐1
  • 收藏13
  • 浏览3.8K

Python数据可视化之matplotlib实践

刘大成 (作者) 

  • 书  号:978-7-121-34888-4
  • 出版日期:2018-09-01
  • 页  数:228
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:石倩
电子书 ¥29.00
购买电子书
纸质版 ¥59.00
本书借助Matplotlib讲解开展Python数据可视化实践所需要掌握的关键知识和技能。本书主要由Matplotlib入门、精进、演练和拓展四部分组成。同时,为方便读者对书中的内容进行有效实践,相关章节都会配以大量典型的综合案例。书中使用的代码都是Python编程知识里的基础内容,有利于读者将时间和精力放在数据可视化的实践本身上。因此,本书适合对Python数据可视化有兴趣的各行业和领域的有识之士。
使用matplotlib绘制各种图表,灵活使用matplotlib中的函数、面向对象方法和绘图语句
研究生学习统计学,发表多篇统计学的相关论文,毕业之后一直做数据分析师一职,在支付行业、O2O行业和在线教育行业工作过,具有丰富的实践经验.
前 言


通过本书的学习,读者可以根据自身需求灵活使用matplotlib中的绘图语句,设置图表组成元素,以及进行泛化性的图形设置。值得注意的是,matplotlib绘图库的操作是通过API实现的,一种操作方法是类似MATLAB的函数接口的API;另一种操作方法是面向对象的API。这两种API可以并行使用,不过函数接口的API的易用性明显好于面向对象的API。所以,本书入门篇主要使用函数接口的API,精进和演练篇主要使用面向对象的API。
本书主要内容
第1篇 使用matplotlib库绘制基本统计图形,讲解matplotlib库的图表组成元素的概念和实现方法,介绍细化matploblib库的图形内容的基本操作方法。
第2篇 设置坐标轴的刻度样式,添加不同形式的注解,划分绘图区域,设置共享绘图区域的坐标轴。
第3篇 主要围绕数据可视化的主要展示窗口—坐标轴,来探讨相关话题,包括设置坐标轴的位置、控制坐标轴刻度显示的方法及移动坐标轴位置等话题。
第4篇 从通识和泛化的角度,探讨进行Python数据可视化需要使用的知识和技术,包括修改matplotlib的配置,设置文本属性,使用不同形式的配色模式,以及展示和保存图形。
读者对象
如果读者了解一些Python的基础编程知识,那是最好不过的事情了,但是如果不了解也没有关系,因为书中的Python代码都是非常易读的,而且重点代码也都会逐一细致地进行解释。与此同时,书中在必要的章节会介绍统计学的相关概念和计算方法,方便读者将宝贵的时间和精力放在数据可视化的实践本身。
你可以是第一次接触数据可视化的人员,甚至是没有任何MATLAB或类似使用统计分析软件的应用经验的人员;你也可以是对Python有基本了解的运营人员、数据分析师、大数据工程师、机器学习工程师、数据挖掘工程师,甚至是人工智能专家、运维工程师、软件测试人员,以及对Python数据可视化有兴趣的各行业的读者。
本书特色
本书在列举大量Python数据可视化案例的过程中,将重点放在Python数据可视化思路、Python数据可视化技术和方法的探讨上,使读者通过阅读本书,能够在自己的实际工作和学习中灵活应用,并解决现实的Python数据可视化问题,而不是拘泥于书中的案例和方法,从而实现“授之以渔”的学习效果。
阅读建议
本书的实例代码都比较简单易懂,而且代码量很小,因而我没有将代码放在GitHub或相关可以下载实例代码的平台上,目的就是希望读者可以独立敲入完整代码,真正动手实践书中讲过的每一个实例,探索每一个实例,通过动手实践的方式,既能掌握Python数据可视化的编程知识,又能领会matplotlib的精髓,实现在做中学、在学中练的目标。正像苏轼的诗句中所言的“竹外桃花三两枝,春江水暖鸭先知。”之所以给读者这样的建议,目的就是让读者主动探索和掌握绘制图表的实现方法。
本书的示例代码都是基于Python 2.7、matplotlib 1.5.3和NumPy 1.13.1实现的。在书中的附录部分会详细讲解Python 2.7、matplotlib 1.5.3和NumPy 1.13.1的安装方法。
联系与反馈
由于本人的学识和能力有限,书中存在纰漏之处在所难免,欢迎广大读者针对书中的错误、阅读体会和建议等给予反馈。如果你对matplotlib也有自己的见解和研究兴趣,欢迎与我联系。请将反馈信息发送到电子邮箱pdmp100@163.com中。
致谢
谈到本书的出版,还要从读研究生时讲起,那时候我就一直有写书的想法,但当时由于阅历和技能都很不成熟,就暂时放下了。毕业之后,我一直从事数据分析、机器学习方面的工作,随着工作经验的积累,也逐渐找到自己的研究兴趣。机缘巧合的是,这段时间恰好有精力可以完成自己的这个梦想。
在写作本书的过程中,我得到了很多人的帮助和支持。首先,要感谢我的父母,在求学和工作的过程中一直做我的坚强后盾,我也一直自豪于生活在“生产性的简朴蜂巢”中。再有,在本书的编辑过程中,得到电子工业出版社石倩编辑耐心、细致的帮助和指导,让我获益良多。最后,要感谢我的妻子一直以来对我工作的理解和支持,而且也要感谢我的朋友和同事对我的成长所给予的关心和帮助。
不忘初心,坚定前行,时间会给你所想的一切。

目录

目 录


第1篇 入门
第1章 使用函数绘制matplotlib的图表组成元素 2
1.1 绘制matplotlib图表组成元素的主要函数 2
1.2 准备数据 3
1.3 绘制matplotlib图表组成元素的函数用法 4
1.3.1 函数plot()——展现变量的趋势变化 4
1.3.2 函数scatter()——寻找变量之间的关系 5
1.3.3 函数xlim()——设置x轴的数值显示范围 6
1.3.4 函数xlabel()——设置x轴的标签文本 7
1.3.5 函数grid()——绘制刻度线的网格线 8
1.3.6 函数axhline()——绘制平行于x轴的水平参考线 9
1.3.7 函数axvspan()——绘制垂直于x轴的参考区域 11
1.3.8 函数annotate()——添加图形内容细节的指向型注释文本 12
1.3.9 函数text()——添加图形内容细节的无指向型注释文本 13
1.3.10 函数title()——添加图形内容的标题 15
1.3.11 函数legend()——标示不同图形的文本标签图例 16
1.4 函数组合应用 17
第2章 使用统计函数绘制简单图形 20
2.1 函数bar()——用于绘制柱状图 20
2.2 函数barh()——用于绘制条形图 22
2.3 函数hist()——用于绘制直方图 23
2.4 函数pie()——用于绘制饼图 25
2.5 函数polar()——用于绘制极线图 26
2.6 函数scatter()——用于绘制气泡图 27
2.7 函数stem()——用于绘制棉棒图 29
2.8 函数boxplot()——用于绘制箱线图 30
2.9 函数errorbar()——用于绘制误差棒图 31
第3章 绘制统计图形 33
3.1 柱状图 33
3.1.1 应用场景——定性数据的分布展示 33
3.1.2 绘制原理 33
3.2 条形图 35
3.3 堆积图 37
3.3.1 堆积柱状图 37
3.3.2 堆积条形图 38
3.4 分块图 39
3.4.1 多数据并列柱状图 40
3.4.2 多数据平行条形图 41
3.5 参数探索 42
3.6 堆积折线图、间断条形图和阶梯图 44
3.6.1 用函数stackplot()绘制堆积折线图 44
3.6.2 用函数broken_barh ()绘制间断条形图 45
3.6.3 用函数step()绘制阶梯图 47
3.7 直方图 48
3.7.1 应用场景——定量数据的分布展示 48
3.7.2 绘制原理 49
3.7.3 直方图和柱状图的关系 50
3.7.4 堆积直方图 51
3.7.5 直方图的不同形状 53
3.8 饼图 55
3.8.1 应用场景——定性数据的比例展示 55
3.8.2 绘制原理 55
3.8.3 延伸阅读——非分裂式饼图 57
3.8.4 案例——绘制内嵌环形饼图 58
3.9 箱线图 60
3.9.1 应用场景——多组定量数据的分布比较 60
3.9.2 绘制原理 61
3.9.3 延伸阅读——箱体、箱须、离群值的含义和计算方法 63
3.9.4 案例1——水平方向的箱线图 65
3.9.5 案例2——不绘制离群值的水平放置的箱线图 66
3.10 误差棒图 67
3.10.1 应用场景——定量数据的误差范围 67
3.10.2 绘制原理 68
3.10.3 案例1——带误差棒的柱状图 69
3.10.4 案例2——带误差棒的条形图 71
3.10.5 案例3——带误差棒的多数据并列柱状图 72
3.10.6 案例4——带误差棒的堆积柱状图 74
第4章 完善统计图形 77
4.1 添加图例和标题 77
4.1.1 图例和标题的设置方法 77
4.1.2 案例1——图例的展示样式的调整 79
4.1.3 案例2——标题的展示样式的调整 80
4.1.4 案例3——带图例的饼图 82
4.2 调整刻度范围和刻度标签 83
4.2.1 调整刻度范围和刻度标签的方法 84
4.2.2 延伸阅读——函数subplot() 85
4.2.3 案例——逆序设置坐标轴刻度标签 86
4.3 向统计图形添加表格 87
第2篇 精进
第5章 统计图形绘制进阶:图形样式 92
5.1 设置坐标轴的刻度样式 92
5.1.1 刻度定位器和刻度格式器的使用方法 92
5.1.2 调用模块pyplot中的函数实现刻度样式的设置 95
5.1.3 案例1——刻度标签和刻度线样式的定制化 95
5.1.4 案例2——货币和时间序列样式的刻度标签 96
5.2 添加有指示注解和无指示注解 98
5.2.1 有指示注解和无指示注解的添加方法 98
5.2.2 案例1——圆角文本框的设置 100
5.2.3 案例2——文本的水印效果 101
5.2.4 案例3——圆角线框的有弧度指示的注解 102
5.2.5 案例4——有箭头指示的趋势线 104
5.2.6 案例5——桑基图 105
5.3 实现标题和坐标轴标签的投影效果 107
5.3.1 实现标题和坐标轴标签的投影效果的操作方法 107
5.3.2 案例——给坐标轴标签添加文本框 109
第6章 划分画布的主要函数 111
6.1 函数subplot():绘制网格区域中的几何形状相同的子区布局 111
6.1.1 函数subplot()的使用方法 112
6.1.2 案例1——在极坐标轴上绘制折线图 113
6.1.3 案例2——在极坐标轴上绘制散点图 114
6.1.4 案例3——在非等分画布的绘图区域上实现图形展示 115
6.2 函数subplot2grid():让子区跨越固定的网格布局 116
6.2.1 函数subplot2grid()的使用方法 116
6.2.2 延伸阅读——模块gridspec中的类GridSpec的使用方法 118
6.3 函数subplots():创建一张画布带有多个子区的绘图模式 120
6.3.1 案例1——创建一张画布和一个子区的绘图模式 120
6.3.2 案例2——创建一张画布和两个子区的绘图模式 122
6.3.3 案例3——多种统计图形的组合展示 124
第7章 共享绘图区域的坐标轴 128
7.1 共享单一绘图区域的坐标轴 128
7.2 共享不同子区绘图区域的坐标轴 130
7.2.1 设置方法 130
7.2.2 案例——将共享坐标轴的子区之间的空隙去掉 135
7.3 共享个别子区绘图区域的坐标轴 136
7.3.1 设置方法 136
7.3.2 延伸阅读——用函数autoscale()调整坐标轴范围 138
第3篇 演练
第8章 坐标轴高阶应用 142
8.1 设置坐标轴的位置和展示形式 142
8.1.1 案例1——向画布中任意位置添加任意数量的坐标轴 142
8.1.2 案例2——调整已经确定的坐标轴的显示、隐藏与刻度范围等问题 144
8.1.3 延伸阅读——使用函数axis()绘制坐标轴 145
8.2 使用两种方法控制坐标轴刻度的显示 146
8.2.1 方法1——调用Axes.set_xticks()和Axes.set_yticks()实例方法 146
8.2.2 方法2——调用函数setp() 147
8.2.3 案例1——棉棒图的定制化展示 149
8.2.4 案例2——坐标轴的样式和位置的定制化展示 150
8.3 控制坐标轴的显示 152
8.4 移动坐标轴的位置 154
第9章 设置线条类型和标记类型的显示样式 158
9.1 不同调用签名形式的字典使用方法 158
9.1.1 方法1——调用签名中的关键字参数的设置形式“fontdict=font” 158
9.1.2 方法2——关键字参数的设置形式“**font” 160
9.2 线条类型的显示样式设置方法 161
9.3 标记类型的显示样式设置方法 162
9.3.1 方法1——单一字符模式 162
9.3.2 方法2——mathtext模式 164
9.4 延伸阅读 166
9.4.1 案例1——“破折号”线条样式的不同展现形式的设置方法 166
9.4.2 案例2——标记填充样式的设置方法 168
9.4.3 案例3——函数plot()的调用签名的设置方法 170
第4篇 拓展
第10章 matplotlib的配置 174
10.1 修改代码层面的matplotlib的配置 174
10.1.1 方法1——调用函数matplotlib.rc() 175
10.1.2 方法2——调用属性字典matplotlib.rcParams 175
10.2 修改项目层面的matplotlib配置 176
10.2.1 配置文件所在路径 176
10.2.2 设置方法 177
第11章 文本属性设置 179
11.1 设置字体属性和文本属性 179
11.1.1 方法1——改变配置文件matplotlibrc的字体属性值和文本属性值 181
11.1.2 方法2——通过属性字典rcParams调整字体属性值和文本属性值 182
11.1.3 方法3——通过设置函数的关键字参数 183
11.2 延伸阅读——手动添加字体 184
11.3 案例——字体主要属性的可视化展示 185
第12章 颜色使用 188
12.1 使用颜色参数和颜色映射表 188
12.1.1 颜色参数的使用 188
12.1.2 颜色映射表的使用 190
12.2 综合案例 193
12.2.1 案例1——模拟图的颜色使用模式 193
12.2.2 案例2——散点图的颜色使用模式 194
12.2.3 案例3——极区图的颜色使用模式 195
12.2.4 案例4——等高线图的颜色使用模式 197
12.2.5 案例5——颜色标尺的颜色使用模式 198
第13章 输出图形的展示和保存 200
13.1 运行命令行展示输出图形 200
13.1.1 方法1——Python shell模式 200
13.1.2 方法2——IPython shell模式 203
13.2 保存输出图形 205
13.2.1 方法1——使用“保存”按钮进行存储 205
13.2.2 方法2——通过执行代码语句进行保存 207
附录A Python基础知识 208
附录B NumPy基础知识 213
附录C matplotlib、NumPy和IPython的安装方法 217

读者评论

  • 画散点图的时候,有时数据比较多,密密麻麻的,怎样通过颜色深浅或者点地大小表示点密度呢?

    蜉蝣渡海发表于 2019/10/1 18:30:18
  • welcome to another matplotlib-examples website

    https://www.data-insights.cn/?cat=1

    https://www.data-insights.cn/

    xuanhaoliu发表于 2019/3/22 21:31:22
  • 有源码可下载吗?

    xuanhaoliu发表于 2019/3/22 21:07:37
  • 没有案例文件?

    傻傻发表于 2018/12/18 22:58:40
  • 可以加入 backends 方面的东西。
    第二篇有时采用plt.**形式有时采用Artister.**形式的函数,可以单独讲讲Artister的构成。

    最近用from matplotlib.backends.backend_tkagg import FigureCanvasTkAgg, N**igation**2Tk
    总是报出一些奇怪的错误

    2018-11-20 20:27:05.918 Python[59940:842804] -[NSApplication _setup:]: unrecognized selector sent to instance 0x7fac15f786a0
    2018-11-20 20:27:05.920 Python[59940:842804] Terminating app due to uncaught exception ‘NSInvalidArgumentException’, reason: ‘-[NSApplication _setup:]: unrecognized selector sent to instance 0x7fac15f786a0’ First throw call stack:
    (
    0 CoreFoundation 0x00007fff3eb09fcb __exceptionPreprocess + 171
    1 libobjc.A.dylib 0x00007fff657c3c76 objc_exception_throw + 48
    2 CoreFoundation 0x00007fff3eba2a24 -[NSObject(NSObject) doesNotRecognizeSelector:] + 132
    ……
    32 libdyld.dylib 0x00007fff663b3115 start + 1
    33 ??? 0x0000000000000003 0x0 + 3
    )
    libc++abi.dylib: terminating with uncaught exception of type N**ceptionlibc++abi.dylib: terminating with uncaught exception of type N**ception

    William发表于 2018/11/20 20:35:16
    • # You need to set TkAgg backend before importing pyplot
      import matplotlib
      matplotlib.use("TkAgg")
      # You need to import pyplot after setting the TkAgg backend
      from matplotlib import pyplot as plt

      Aleax发表于 2018/12/11 22:59:14

电子书版本

  • Epub

推荐用户

相关图书

业务可视化分析: 从问题到图形的Tableau方法

对广大的业务分析师而言,业务分析(或者称为商业分析)应该从业务和问题出发,可视化是实现的方法,辅助决策是最终的目的。本书以业务分析为起点,介绍了“样本范围、问题...

¥139.00

Python数据可视化之美

张杰 (作者)

本书主要介绍如何使用Python 中的matplotlib、Seaborn、plotnine、Basemap 等包绘制专业图表。本书首先介绍Python 语言编...

¥90.30

Meteor全栈开发

杜亦舒 (作者)

本书全面介绍了新一代全栈开发平台 Meteor。书中首先简要介绍了 Meteor 的概念和特性,然后通过各种示例讲解 Meteor 的用法,再用案例实践的方式综...

¥48.00

前端函数式攻城指南

欧阳继超 (作者)

在后端,函数式语言层出不穷。在前端,函数式最后的边界也已经被渐渐打破。Scala的Scala.js、Clojure的ClojureScript都试图同构移向前端...

¥39.00

Egret——HTML5游戏开发指南

张鑫磊 (作者)

本书向大家介绍HTML5游戏行业最新动态以及未来发展方向,同时也提及了当前HTML5技术相关市场。全书针对Egret HTML5游戏做了全方位讲解,涉及游戏中的...

¥65.00

ES6 标准入门(第2版)

阮一峰 (作者)

ES6(又名 ES2105)是 JavaScript 语言的新标准,2015 年 6 月正式发布后,得到了迅速推广,是目前业界超级活跃的计算机语言。本书是国内仅...

¥49.00