📅  最后修改于: 2023-12-03 15:04:31.572000             🧑  作者: Mango
Matplotlib是一个广泛使用的Python科学绘图库。其中的Axes.matshow()函数用于绘制矩阵图,即将二维数组映射成颜色方块状图。
Axes.matshow(A, cmap=None, aspect='equal', alpha=None, vmin=None, vmax=None, origin=None,
extent=None, shape=None, filternorm=1, filterrad=4.0, resample=None, url=None, **kwargs)
A:二维数组,即要绘制的矩阵数据
cmap:matplotlib.colors.Colormap,绘制颜色映射表,可选值有"viridis"、"inferno"等,默认为"viridis"
aspect:{'equal', 'auto'},控制坐标轴标签比例,"equal"表示标签比例相等,"auto"表示由matshow自己决定,默认为"equal"
alpha:float,颜色的透明度,取值范围[0, 1],默认为None即不透明
vmin、vmax:float,用于控制颜色映射的数据值范围,A中数值小于vmin的用vmin表示,数值大于vmax的用vmax表示,数据值在[vmin, vmax]内的用颜色映射表示,默认为None表示使用A数组的最小和最大值
origin:{'upper', 'lower'},控制矩阵显示的方向,"upper"表示横轴正方向靠左,纵轴正方向靠下,"lower"表示恰巧相反,默认为None即"upper"
extent:[left, right, bottom, top],指定图像左边界、右边界、下边界、上边界四个值,用于调整图像显示范围
shape:(rows, cols),指定矩阵的行数和列数,用于显示不完整的矩阵
filternorm:float,滤波器尺寸调整,用于控制平滑度,该参数越大,平滑度越高,默认为1
filterrad:float,滤波器半径,用于控制平滑度,该参数越大,平滑度越低,默认为4.0
resample:bool,指定在绘制时是否重新采样以获得更好的图像质量,默认为None即由matshow自己决定
**kwargs:关键词参数,用于控制颜色映射的字体、边框等参数
该函数没有返回值,只是在神经元之间建立连接。
以下示例展示了如何使用matshow函数绘制一个随机的10x10矩阵,并设定各项参数。
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(42)
A = np.random.rand(10, 10)
fig, ax = plt.subplots()
im = ax.matshow(A, cmap='inferno', aspect='equal', alpha=.5, vmin=0, vmax=1, origin='lower',
extent=[-1, 1, -1, 1], shape=(9, 9), filternorm=2, filterrad=5.0,
resample=False)
ax.set_xticks(np.arange(-.5, 10, 1))
ax.set_yticks(np.arange(-.5, 10, 1))
ax.grid(which='both', color='gray', linestyle='-', linewidth=1)
ax.set_title('Random matrix')
cbar = fig.colorbar(im)
cbar.ax.set_ylabel('Value')
plt.show()
运行以下命令,得到下图所示的随机矩阵图。
fig.savefig('matshow.png')