介绍
matplotlib是Python中的一个绘图库,它提供了一个类似于 MATLAB 的绘图系统。使用matplotlib你可以生成图表、直方图、功率谱、条形图、错误图、散点图等。matplotlib广泛用于数据可视化领域,是 Python 中最著名的绘图库之一。
同样matplotlib的安装也和numpy和pandas一样,具体语言如下:(在电脑终端执行)
python -m pip install --user matplotlib
基本用法
利用matplotlib绘图方法很多,网上的方法也是各种各样,起初我看到这些方法很头疼,并不明白为何这样画。其实,对于各种绘图方法来说,只需掌握其内在的逻辑你就会明白不同方法的内涵。
我总结了网上绘图常见的四种方法,如下:
import matplotlib.pyplot as plt
x=[1,4,9,16,25]
#第一种方法
plt.figure()
plt.plot(x)
#第二种方法
fig=plt.figure()
ax=plt.gca()
ax.plot(x)
#第三种方法
fig=plt.figure()
ax=fig.add_axes([0.1,0.1,0.7,0.7])
ax.plot(x)
#第四种方法
fig,ax=plt.subplots()
ax.plot(x)
plt.show()
这四种方法起到的作用大致上是相通的。
第一种方法:plt.figure()是起到了开辟一个窗口的作用,这个窗口里面什么都没有,仅仅是一个窗口。plt.plot()是在这个窗口中进行画图,在画图之前系统默认给它分配了(即默认创建)一个二维坐标轴平面,这个图像最终在这个坐标轴中呈现。
第二种方法:同样,plt.figure()开辟了一个窗口,同时将这个窗口赋给了变量fig。plt.gca()(get current axes)的作用是在当前的窗口中捕捉坐标轴平面,将这个坐标轴平面赋给变量ax。(如果当前窗口中没有,那就建立一个新的)然后在ax中进行作图,即ax.plot()
第三种方法:第三种方法和第二种方法很相似,ax=fig.add_axes([ ])的作用就是创建一个坐标轴,第一种方法在这里是省掉了,系统默认创建了一个,第二种虽说是多了一句但是是捕捉坐标轴,因为本身就没有所以归根结底还是创建了一个,这种方法就是明着说要创建一个坐标轴。
第四种方法:这个方法比较简单省事,一句话干了两句话的事。plt.subplots()是建立了一个窗口,而此窗口并未简单的彼窗口,subplots可以在这个窗口中布置子图的格局,换句话说如果你想在一个窗口中画多个子图,每个子图既独立存在又互不干扰,它就能实现这个功能。但在这里,我们并未指定它的参数,所以它默认是创建了一个子图,即整个窗口就画一个图。那么它的返回值fig指的是整个窗口,ax是所有的子图的坐标轴平面体系。因为你只创建了一个,所以ax在这里就是一个坐标轴平面,ax.plot()也就是在这仅有的一个坐标轴平面内画图。
归根结底,在matplotlib中画图可以分为四部分:1.创建窗口 2.创建坐标轴 3.画图 4.修剪
如果subplots多个子图,见下:
import matplotlib.pyplot as plt
x=[1,4,9,16,25]
fig,ax=plt.subplots(2,2)
ax[0,0].plot(x)
plt.show()
我们建立了一个2×2布局的窗口,这个窗口是fig,而里面的每一个坐标轴平面是ax,我们在ax的第一个坐标轴中画图即:ax[0,0].plot(x)