【Python强化】matplotlib教程⼤全⼀、初识matplotlib
1.1 核⼼原理
使⽤matplotlib绘图的原理,主要就是理解figure(画布)、axes(坐标系)、axis(坐标轴)三者之间的关系。
下⾯这幅图更详细:
matplotlib中,就是需要指定axes(坐标系),每⼀个axes(坐标系)相当于⼀张画布上的⼀块区域。⼀张画布上,可以分配不同区域,也就是说,⼀张画布,可以指定多个axes(坐标系)。
⼀个figure(画布)上,可以有多个区域axes(坐标系),我们在每个坐标系上绘图,也就是说每个axes(坐标系)中,都有⼀个axis(坐标轴)。
matplotlib中subplot特别注意:在matplotlib中,figure画布和axes坐标轴并不能显⽰的看见,我们能够看到的就是⼀个axis坐标轴的各种图形。
1.2 基本使⽤
1.2.1 创建figure(画布)的两种⽅式
1.2.1.1 隐式创建figure对象
当第⼀次执⾏()画图代码时,系统会去判断是否已经有了figure对象,如果没有,系统会⾃动创建⼀个figure对象,并且在这
个figure之上,⾃动创建⼀个axes坐标系。
【注意】默认创建⼀个figure对象,⼀个axes坐标系
也就是说,如果我们不设置figure对象,那么⼀个figure对象上,只能有⼀个axes坐标系,即我们只能绘制⼀个图形。
隐式创建figure对象存在的问题
优势:如果只是绘制⼀个⼩图形,那么直接使⽤()的⽅式,会⾃动帮我们创建⼀个figure对象和⼀个axes坐标系,这个图形最终就是绘制在这个axes坐标系之上的。
劣势:如果我们想要在⼀个figure对象上,绘制多个图形,那么我们就必须拿到每个个axes对象,然后调⽤每个位置上的axes对象,就可以在每个对应位置的坐标系上,进⾏绘图,如下图所⽰。注意:如果figure对象是被默认创建的,那么我们根本拿不到axes对象。因此,需要我们显⽰创建figure对象。
1.2.1.2 显⽰创建figure对象
import matplotlib.pyplot as plt
fig = plt.figure()
axes1 = fig.add_subplot(2,1,1)
axes2 = fig.add_subplot(2,1,2)
plt.show()
案例:
figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
axes1.plot([1,3,5,7],[4,9,6,8])
axes2.plot([1,2,4,5],[8,4,6,2])
figure.show()
1.2.2 完整的绘图步骤
1.导库
import matplotlib as mpl
import matplotlib.pyplot as plt
2.创建figure画布对象
如果绘制⼀个简单的⼩图形,我们可以不设置figure对象,使⽤默认创建的figure对象,当然我们也可以显⽰创建figure对象。如果⼀张figure画布上,需要绘制多个图形。那么就必须显⽰的创建figure对象,然后得到每个位置上的axes对象,进⾏对应位置上的图形绘制。
3.根据figure对象进⾏布局设置
4.获取对应位置⼦图的axes坐标系对象
figure = plt.figure()
axes1 = figure.add_subplot(2,1,1)
axes2 = figure.add_subplot(2,1,2)
5.调⽤axes对象,进⾏对应位置的图形绘制
这⼀步,是我们传⼊数据,进⾏绘图的⼀步。对于图形的⼀些细节设置,都可以在这⼀步进⾏。
6.显⽰图形
plt.show()或figure.show()如果在PyCharm中绘图的话,必须要加这句代码,才能显⽰。如果在notebook中进⾏绘图,可以不⽤加这句代码,⽽是⾃动显⽰。
⼆、matplotlib常⽤函数
2.1 绘制图表组成元素的主要函数
2.1.1 plot()——展现量的变化趋势
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10,1000)
y = np.cos(x)
# ls 曲线类型 lw曲线粗细 lable 图例名称
plt.plot(x,y,ls="--",lw=5,label="plot figure")
plt.legend()
plt.show()
2.1.2 scatter()——寻变量之间的关系
#encoding=utf-8
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10,1000)
y = np.random.rand(1000)
# ls 曲线类型 lw曲线粗细 lable 图例名称
plt.scatter(x,y,label="scatter figure")
plt.legend()
plt.show()
2.1.3 xlim()——设置x轴的数值显⽰范围
#encoding=utf-8
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(1,10,1000)
y = np.random.rand(1000)
# ls 曲线类型 lw曲线粗细 lable 图例名称
plt.scatter(x,y,label="scatter figure")
plt.xlim(0.01,10)
plt.ylim(0,1)
plt.legend()
plt.show()
2.1.4 xlabel()——设置x轴的标签⽂本
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论