Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案。Matplotlib 软件包中子包,提供了一个类似MATLAB的绘图框架。
初识画图
基本绘图流程:
1. 创建画布与创建子图:
第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
2. 添加画布内容
第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。
3. 保存展示图形
第三部分主要用于保存和显示图形。
import matplotlib.pyplot as plt
import numpy as np
# 创建画布
# F = plt.figure()#创建空白画布,可以指定画布的大小,像素
# F.add_subplot()#创建并选中子视图,可以指定字数图的行数、列数和选中图片的编号
# # 例子1:绘制y=2*x+1
x = np.linspace(-1,1,50)
y = 2*x+1
# print(y,x)
#1.创建画布
plt.figure()
#2.plop(x,y),绘制直线
plt.plot(x,y)
#3保存成图片
plt.savefig('img/1.png')
#4.展示画布
plt.show()
# 例子2:在同一画布中绘制两条曲线
x = np.arange(0,1.1,0.01)
y1 = x**2
y2 = x**4
#可视化
plt.figure()
#常用设置名称
#标题
plt.title('line')
#x轴
plt.xlabel('x')
#y轴
plt.ylabel('y')
#x和y轴的刻度范围
plt.xlim((0,1))
plt.ylim((0,1))
#刻度间距
# plt.xticks([0,0.5,1])
# plt.yticks([0,0.4,0.8,1])
#画的坐标参数
plt.plot(x,y1)
plt.plot(x,y2)
#图例
#注意图例要加在显示之前
plt.legend(['y=x^2','y=x^4'])
plt.savefig('img/2.png')
plt.show()
子视图
子视图:本质上是多个基础图形绘制过程的叠加,即分别在同一个画布上不同子图上进行绘制
#创建子视图
import matplotlib.pyplot as plt
import numpy as np
rad = np.arange(0,np.pi*2,0.01)#三角函数
#第一组数据
y1 = rad**2
y2 = rad**4
#绘制
#确定画布的大小创建一个8*6的画布,且设置dpi=80
F = plt.figure(figsize=(8,6),dpi=80)
#创建并制定子视图
# 格式F.add_subplot(m,n,index)
# m:行,n:列,index:在图中的位置
F.add_subplot(2,1,1)
#确定刻度范围
plt.xlim((0,1))
plt.ylim((0,1))
#数据
plt.plot(rad,y1)
plt.plot(rad,y2)
#图例
plt.legend(['y=x^2','y=x^4'])
#第二张图
s1=np.sin(rad)
c2=np.cos(rad)
F.add_subplot(2,1,2)
#常用
plt.xticks([0,np.pi/2,np.pi,np.pi*3/2,np.pi*2])
#数据
plt.plot(rad,s1)
plt.plot(rad,c2)
#图例
plt.legend(['sin','cos'])
plt.show()