Pandas教程写的差不多了,来写一写与数据可视化相关的 Matplotlib
系列教程吧。读过Pandas系列文章的读者应该都知道,我写文章更多的会融入我对这个东西的理解, Matplotlib
系列也是如此。这个系列会涉及 Matplotlib
的一些简单的概念、绘图原理、常见图形的绘制以及一些高阶的绘图技巧。学完之后,期待达到的效果是可以用 Matplotlib
画出这样的图形。
这篇文章先介绍一下 Matplotlib
的一些简单基本概念和绘图原理,直入正题~
不知道有多少同学和我一样,在刚接触 Matplotlib
时,会被书上的 plt
、 ax
以及 subplots
等各种概念所迷惑,心里存在无数个问号,这些究竟是啥?画出来的图不是一样的吗?他们有啥区别?下面就一步步来解答这些迷惑。
概念引入
首先,我们应该要了解一张用 Matplotlib
画出来的图的具体构造,引用一张官方的图:
我们先主要看图里面红色框的 Figure
和蓝色框的 Axes
,如何理解这两个东西呢?
如果将 Matplotlib
绘图和我们平常画画相类比,可以把 Figure
想象成 一张纸 (一般被称之为画布), Axes
代表的则是 纸中的一片区域 (当然可以有多个区域,这是后续要说到的 subplots
),上一张更形象一点的图。
在 Figure
画布中, Axes1
区域画了一张数据仪表盘, Axes2
区域画了柱状图, Axes3
区域绘制了一张地图,相信还是挺好理解的。
两种绘图方式区别
对着两个概念有基本的了解后,就可以来看看 plt.plot()
和 ax.plot()
有何区别了,下面列出了两种用 Matplotlib
绘制图表的方式。
-
plt
# 第一种方式 plt.figure() plt.plot([1,2,3],[4,5,6]) plt.show()
-
ax
# 第二种方式 fig,ax = plt.subplots() ax.plot([1,2,3],[4,5,6]) plt.show()
绘图效果如下
可以看到,不论是用 plt.plot()
还是 ax.plot()
,结果都是一样的
那区别在哪里?
从第一种方式的代码来看,先生成了一个 Figure
画布,然后在这个 画布上隐式生成一个画图区域进行画图 。
第二种方式同时生成了 Figure
和 axes
两个对象,然后用 ax
对象在 其区域内 进行绘图
如果从 面向对象编程 (对理解 Matplotlib
绘图很重要)的角度来看,显然第二种方式更加易于解释,生成的 fig
和 ax
分别对画布 Figure
和绘图区域 Axes
进行控制,第一种方式反而显得不是很直观,如果涉及到子图 零部件的设置 ,用第一种绘图方式会很难受。
在实际绘图时,也更 推荐使用第二种方式。
subplot的绘制
下面通过介绍 subplots
加深对第二种绘图方式的理解
假如现在我要在一张纸上左边画一个折线图,右边画一个散点图,该如何画呢?
首先要有一个画布 Figure
,其次,需要有两个区域 Axes
(等价于两个子图 subplot
)来画图
# 生成画布和axes对象 # nrows=1和ncols=2分别代表1行和2列 fig,ax = plt.subplots(nrows=1,ncols=2)
因为这里有两个画图区域,所以 ax
对应的是一个列表,存储了两个 Axes
对象。
然后分别控制左边和右边的绘图区域进行绘图
fig,ax = plt.subplots(nrows=1,ncols=2) ax[0].plot([1,2,3],[4,5,6]) ax[1].scatter([1,2,3],[4,5,6])
其实到这里了也会发现,一个 Axes
对象对应了一个 subplot
子图,这些个子图都是画在同一个画布 Figure
之上。
读到这里可能已经对 Matplotlib
绘图有点感觉了,下一篇系列文章会接着介绍 Matplotlib
常见组件的设置,有什么疑问可以点下面的的链接给我留言!
往期文章
你点的每个“在看”,是对我最大的鼓励
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Nginx高性能Web服务器详解
苗泽 / 电子工业出版社 / 2013-10 / 59.00元
《Nginx高性能Web服务器详解》全面介绍了当前Internet上流行的一款开放源代码的Web服务器——Nginx。全书一共分为四大部分,分别从入门、功能、实现和应用等四个方面对Nginx服务器的知识进行完整阐述,从而满足广大读者在应用Nginx服务器时的普遍性需求。同时也深入剖析了Nginx服务器的工作原理和实现技术,对其中使用到的数据结构和方法进行了详细阐述,并且结合实际的应用情况给出了多个......一起来看看 《Nginx高性能Web服务器详解》 这本书的介绍吧!