3.1 掌握绘图基础语法与常用参数
- 3.1.1 掌握pyplot基础语法
- 1.创建画布与创建子图
- 2.添加画布内容
- 3.保存与展示图形
- 3.1.2 设置pyplot的动态rc参数
- 线条常用的rc参数
Matplotlib库介绍
Matplotlib是Python中最常用的可视化工具之一,可以非常方便地创建海量类型的2D图表和一些基本的3D图表,可根据数据集(DataFrame,Series)自行定义x,y轴,绘制图形(线形图,柱状图,直方图,密度图,散布图等等),能够满足大部分需要。
Matplotlib最早是为了可视化癫痫病人的脑皮层电图相关的信号而研发,因为在函数的设计上参考了MATLAB,所以叫做Matplotlib。
官方文档: https://matplotlib.org/
Matplotlib中最基础的模块是pyplot。
3.1.1 掌握pyplot基础语法
大部分的pyplot图形绘制都遵循一个流程,使用这个流程可以完成大部分图形的绘制。pyplot基本绘图流程主要分为3个部分,如下图。
1.创建画布与创建子图
第一部分主要作用是构建出一张空白的画布,并可以选择是否将整个画布划分为多个部分,方便在同一幅图上绘制多个图形的情况。最简单的绘图可以省略第一部分,而后直接在默认的画布上进行图形绘制。
2.添加画布内容
第二部分是绘图的主体部分。其中添加标题,坐标轴名称,绘制图形等步骤是并列的,没有先后顺序,可以先绘制图形,也可以先添加各类标签。但是添加图例一定要在绘制图形之后。
图参数说明
3.保存与展示图形
第三部分主要用于保存和显示图形。
# 3.1 掌握绘图基础语法与常用参数
# 3.1.1 掌握pyplot基础语法
## 1、pyplot中的基础绘图语法
import numpy as np
import matplotlib.pyplot as plt
data = np.arange(0, 1.1, 0.01)
# print(data)
plt.title('lines') # 添加标题
plt.xlabel('x') # 添加x轴的名字
plt.ylabel('y') # 添加y轴名字
plt.xlim((0,1)) # 确定x轴范围
plt.ylim((0,1)) # 确定y轴范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) #规定x轴刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) #规定y轴刻度
plt.plot(data, data**2) # 添加y=x^2曲线
plt.plot(data, data**4) # 添加y=x^4曲线
plt.legend(['y=x^2', 'y=x^4']) # 指定图例
plt.savefig("F:/test/pic.png") # 保存
plt.show()
## 2、包含子图绘制的基础语法
import numpy as np
import matplotlib.pyplot as plt
rad = np.arange(0,np.pi*2, 0.01)
# 第一幅子图
p1 = plt.figure(figsize = (8,6),dpi=80) # 确定画布大小
ax1 = p1.add_subplot(2,1,1) # 创建一个2行1列的子图,并开始绘制第一个图
plt.title('lines') # 添加标题
plt.xlabel('x') # 添加x轴的名字
plt.ylabel('y') # 添加y轴名字
plt.xlim((0,1)) # 确定x轴范围
plt.ylim((0,1)) # 确定y轴范围
plt.xticks([0, 0.2, 0.4, 0.6, 0.8, 1]) #规定x轴刻度
plt.yticks([0, 0.2, 0.4, 0.6, 0.8, 1]) #规定y轴刻度
plt.plot(rad, rad**2) # 添加y=x^2曲线
plt.plot(rad, rad**4) # 添加y=x^4曲线
plt.legend(['y=x^2', 'y=x^4']) # 指定图例
# 第二幅子图
ax2 = p1.add_subplot(2,1,2)
plt.title('sin/cos') # 添加标题
plt.xlabel('rad') # 添加x轴的名字
plt.ylabel('value') # 添加y轴名字
plt.xlim((0,np.pi*2)) # 确定x轴范围
plt.ylim((-1,1)) # 确定y轴范围
plt.xticks([0, np.pi/2, np.pi, np.pi*1.5, np.pi*2]) #规定x轴刻度
plt.yticks([-1, -0.5, 0, 0.5, 1]) #规定y轴刻度
plt.plot(rad, np.sin(rad)) # 添加y=x^2曲线
plt.plot(rad, np.cos(rad)) # 添加y=x^4曲线
plt.legend(['sin', 'cos']) # 指定图例
plt.savefig("F:/test/pic2.png") # 保存
plt.show()
3.1.2 设置pyplot的动态rc参数
由于默认的pyplot字体并不支持中文字符的显示,因此需要通过设置font.sans-serif参数改变绘图时的字体,使得图形可以正常显示中文。同时,由于更改字体后,会导致坐标轴中的部分字符无法显示,因此需要同时更改axes.unicode_minus参数。
plt.rcParams[‘font.sans-serif’] = ‘SimHei’ # 设置中文显示
plt.rcParams[‘axes.unicode_minus’] = False
除了设置线条和字体的rc参数外,还有设置文本、箱线图、坐标轴、刻度、图例、标记、图片、图像保存等rc参数。具体参数与取值可以参考官方文档。
线条常用的rc参数
lines.linestyle参数取值及意义
lines.marker参数取值及意义
# 3.1.2 设置pyplot的动态rc参数
# 原图
import matplotlib.pyplot as plt
x = np.linspace(0, 4*np.pi) # 生成x轴数据
y = np.sin(x) # 生成y轴数据
plt.plot(x,y)
plt.title("y=sinx")
plt.show()
# 修改rc参数后
plt.rcParams['lines.linestyle'] = '--' # 线条样式
plt.rcParams['lines.linewidth'] = 2 # 线条宽度
plt.rcParams['lines.marker'] = 'o' # 线条上点的形状
plt.rcParams['lines.markersize'] = 5 # 点的大小
plt.plot(x,y)
plt.title("y=sinx")
plt.show()
# 修改rc参数显示中文标题
plt.rcParams['font.sans-serif'] = 'SimHei' # 线条样式
plt.rcParams['axes.unicode_minus'] = False # 设置正常显示符号
plt.plot(x,y)
plt.title("sinx曲线")
plt.show()