文章目录
1. pyplot基础语法
1.1 plt.figure - 创建空白画布
plt.figure( figsize=(num1, num2), dpi=num3 )
-> figsize : 指定画布的大小
-> dip : 指定画布的像素
1.2 figure.add_subplot - 创建子图并选中子图
figure.add_subplot(行, 列, 子图序号)
创建子图的方式:
通过行和列指定子图的规模,比如(3, 2)就是创建一个3行2列的子图;
每个子图可看做一个空白方框,最终结果就是有3行,每行有两个空白方框,
编号从1开始,从第一行开始从左到右编号,第一行结束到第二行。
如figure.add_subplot(4, 3, 6)
创建一个4行3列的子图框架每个子图可看做一个方框,从第一行开始自做向右由1开始编号,选中编号为6的子图。
1.3 plt.title - 指定标题
plt.title(‘name’) 为图像增添标题name,可通过其他参数定义标题的名称,位置,字体,颜色等
参数:
-> fontsize : 字体大小,默认12;
可选参数 [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’]
-> fontweight : 字体粗细;
可选参数 [‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]
-> fontstyle : 字体类型;
可选参数[ ‘normal’, ‘italic’, ‘oblique’ ]
-> verticalalignment : 水平对齐方式;
可选参数 [‘center’ , ‘top’ , ‘bottom’ , ‘baseline’]
-> horizontalalignment : 设置垂直对齐方式;
可选参数:left,right,center
-> rotation : 旋转角度
可选参数为:vertical,horizontal 也可以为数字
-> alpha : 透明度
参数值0-1之间
-> backgroundcolor : 标题背景颜色
-> bbox : 给标题增加外框 ,常用参数如下:
1. boxstyle方框外形
2. facecolor(简写fc)背景颜色
3. edgecolor(简写ec)边框线条颜色
4. edgewidth边框线条大小
1.4 plt.xlabel, plt.ylabel - 定义轴属性
plt.xlabel() : 在图形中添加x轴名称, 可通过参数指定位置,颜色,字体等
plt.ylabel() : 在图形中添加y轴名称, 可通过参数指定位置,颜色,字体等
1.5 plt.xlim, plt.ylim - 指定区间
plt.xlim((start, end)) : 指定x轴的区间
plt.ylim((start, end)) : 指定y轴的区间
1.6 plt.xticks, plt.yticks - 指定刻度
plt.xticks() : 指定x轴刻度, 传入可迭代对象,如[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]或range(0, 11)
plt.yticks() : 指定y轴刻度
以下的实参传入都是合法的:
plt.xticks(range(0, 11))
plt.yticks(np.arange(0, 11))
1.7 plt.plot - 绘制曲线
plt.plot(x, y) : 给出x和y的关系,因变量y用自变量x表示。python会绘制出对应的曲线
如:
plt.plot(x, x**2)
python会绘制一条y=x^2
的曲线
1.8 plt.legend - 指定图形的图例
plt.legned([‘y=x^2’]) :在图上对曲线进行标注
1.9 plt.savefig - 保存图像
plt.savefig(‘路径’) :将生成的图像保存到指定的路径中
1.10 plt.show - 展示图像
plt.show() : 运行代码时,实时展示图像
2. 创建图像的流程
import matplotlib.pyplot as plt
import numpy as np
# 1. 由于采用描点画图的方式,首先需要定义x的取值
data = np.arange(0, 10, 0.01)
# 2. 创建画布(同时创建多个图像时用)
p1 = plt.figure(figsize=(8, 6), dpi=80)
# 3. 选择子图(同时创建多个图像时用)
ax1 = p1.add_subplot(2, 1, 1) # 创建两行一列的子图框架,并选择第1个子图
# 4. 为图像添加标题
plt.title('test')
# 5. 添加x, y轴
plt.xlabel('x')
plt.ylabel('y')
# 6. 确定x, y轴范围
plt.xlim((0, 10))
plt.ylim((0, 10))
# 7. 确定x, y轴的刻度
plt.xticks(list(range(0, 11)))
plt.yticks(list(range(0, 11)))
# 8. 添加曲线
plt.plot(x, x**3)
# 9. 标注曲线方程
plt.legend('y=x^3')
# 10. 保存图片(可选)
plt.savefig('路径')
# 11. 展示图片(可选)
plt.show()
3. 实例
绘制三个图像,分别为y=x
, y=sinx
,y=cosx
和y=sinx
如下:
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0, np.pi*2, 0.01)
# 第一幅子图
p1 = plt.figure(figsize=(20, 15), dpi=80)
ax1 = p1.add_subplot(2, 2, 1)
plt.title('y = x')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0, np.pi*2))
plt.ylim((0, np.pi*2))
plt.xticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2])
plt.yticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2])
plt.plot(data, data)
plt.legend(['y = x'])
# 第二幅子图
ax2 = p1.add_subplot(2, 2, 2)
plt.title('sinx')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0, np.pi*2))
plt.ylim((-1, 1))
plt.xticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2])
plt.yticks([-1, -0.5, 0, 0.5, 1])
plt.legend(['y = sinx'])
plt.plot(data, np.sin(data))
# 第三幅子图
ax3 = p1.add_subplot(2, 1, 2)
plt.title('x, sinx')
plt.xlabel('x')
plt.ylabel('y')
plt.xlim((0, np.pi*2))
plt.ylim((-1, 1))
plt.xticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2])
plt.yticks([-1, -0.5, 0, 0.5, 1])
plt.plot(data, np.cos(data))
plt.plot(data, np.sin(data))
plt.legend(['y = cosx', 'y = sinx'])
plt.show()
结果如下