Matplot基本用法+常识
引用:matplotlib实际上为面向对象的绘图库,它所绘制的每个元素都有一个对象与之对应的。
figure
就是一个图啦,axes
表示图上的一个画图区域啦,一个图上可以有多个画图区域的啦,意思就是说,一个图上可以有多个子图啊。用函数gcf()
与gca()
分别得到当前的figure
与axes
。(get current figure, get current axes).
注意: 要是使用jupyter的话,得用一个内联的东东(插件),使用方法是在引入matplotlib库之后键入
%matplotlib inline
放个代码压压惊先
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(1) #建立figure(1),也就是我们上面说的一个大图,然后用axes划分子区域
ax1 = plt.subplot(3,1,1) #划分[3,1]的图,然后选择第一个,可以理解为三行一列
ax2 = plt.subplot(3,1,2)
ax3 = plt.subplot(3,1,3)
plt.sca(ax1) #切换到子图1
plt.sca(ax2) #切换到子图2
plt.figure(1) #切换到figure(1),它不是重建哦;
先来讲讲理论部分
对于上面的很多很多对象,其实都是Artist
对象,Artist
对象共分为简单类型和容器类型两种哦。简单的类型是标准的绘图元件,如:line2D, Rectangle, Text, AxesImage
等。而容器类型则可以包含许多简单类型的Artist
对象,如Figure,Axes,Axis
等,用人话讲就是,容器类型的可以一个对象里面含有多个对象,也就是一个figure
可以划分成多个子区域,我们常说的axes
。
建立一个简单的Artist对象
import matplotlib.pyplot as plt
%matplotlib inline
# 建立一个简单的Artist对象的过程
#figure对象的add_axes()可以在其中创建一个axes对象,
# add_axes()的参数为一个形如[left, bottom, width, height]的列表,取值范围在0与1之间;
fig = plt.figure(1) #创建一个figure对象 下面的ax1就是figure的子区域
ax1 = fig.add_axes([0.1,0.5,0.8,0.5]) # 我们把它放在了figure图形的上半部分,对应参数分别为:left, bottom, width, height;
ax1.set_xlabel('time')
line = ax1.plot(range(5))[0] #用axes对象的plot()进行绘图,它返回一个Line2D的对象;matplotlib.lines.Line2D
line.set_color('r')
plt.show()
其中,add_axes()里面的列表参数决定了我们这一整个图像的大小,[left, bottom, width, height]都只能够在[0,1]中取值
介绍几个简单的函数 --- First: plot(*args, *kwargs)
这里推荐CSDN大佬weixin_34376986的文章,他讲的更加深刻和详细