import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif']=['SimHei']#用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False #用来正常显示负号
为了统计分析,需要对数据进行可视化,Matplotlib是Python中用于数据绘图的软件包。
Matplotlib最常用的模块是Pyplot。
1 Figure/绘图
Figure表示整个绘图,可以理解为一个画布,绘图中可以包含多个子图形(subplot)。
如果不显式创建figure,会使用默认的figure。
Figure语法说明
figure(num=None, figsize=None, dpi=None, facecolor=None, edgecolor=None, frameon=True)
参数 | 含义 |
---|---|
num | 图像编号或名称(数字为编号,字符串为名称) |
figsize | 指定图像的宽和高,单位为英寸 |
dpi | 指定图像的分辨率 |
facecolor | 背景颜色 |
edgecolor | 边框颜色 |
frameon | 是否显示边框 |
2 Subplot/子图
一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快速绘制, 其调用形式如下 :
subplot(numRows, numCols, plotNum)
- 图表的整个绘图区域被分成 numRows 行和 numCols 列
- 然后按照从左到右,从上到下的顺序对每个子区域进行编号,左上的子区域的编号为1
- plotNum 参数指定创建的 Axes 对象所在的区域
import numpy as np
import matplotlib.pyplot as plt
x = np.arange(0.0, 3.0, 0.01)
y1 = np.sin(x)
y2=np.cos(x)
plt.subplot(212)#绘制在两行一列的第二列
plt.plot(x, y1, 'olivedrab')
plt.subplot(221)#绘制在两行两列的第一行第一列
plt.plot(x, y2, 'silver')
plt.title('left')
plt.subplot(222)#绘制在两行两列的第一行第二列
plt.plot(x*1.2,y1, 'orangered')
plt.title('right')
plt.show()
3 subplots
subplots()函数可以一次添加多个子图,注意函数名后面多了个’s’。
# 导入numpy库与matplotlib.pyplot库
import numpy as np
import matplotlib.pyplot as plt
# 准备数据
x = np.arange(1,5)
y = x**3
# 创建多个子图
fig, ax = plt.subplots(nrows=2, ncols=2, figsize=(6,6))
# 绘制图形
ax[0, 1].plot([1,2,3,4], [1,4,9,16], "go") # 绘制第0行第1列的坐标系(子图),go 表示green circle,绿色圆点
ax[0, 1].set_title("green") # 设置子图标题
ax[1, 0].plot([1,2,3,4], [1,4,9,16], "r^") # 绘制第1行第0列的坐标系(子图),r^ 表示 红色(red)三角
ax[1, 0].set_title("red") # 设置子图标题
# 设置标题
plt.suptitle("2 subplots")
# 显示
plt.show()
4 图像的样式设置
- LineStyle:线形
- LineWidth:线宽
- Color:颜色
- MarkerType:标记点的形状
- MarkerSize:标记点的大小
- MarkerFaceColor:标记点内部的填充颜色
- MarkerEdgeColor:标记点边缘的颜色
4.1 LineStyle可选参数
'-' solid line style 实线
'--' dashed line style 虚线
'-.' dash-dot line style 点横线
':'