1. 函数功能
在二维规则栅格上展示数据,展示为图片。
输入可以是实际的RGB(A)数据,也可以是2D标量数据,将以伪彩色图像的形式呈现。若要显示灰度图像,请使用参数设置颜色映射。渲染图像所使用的像素数量由Axes尺寸和图形的dpi设置决定。
2. 函数语法
matplotlib.pyplot.imshow(X, cmap=None, norm=None, *, aspect=None,
interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None,
interpolation_stage=None, filternorm=True, filterrad=4.0, resample=None,
url=None, data=None, **kwargs)
3. 函数参数
参数 | 含义 |
---|---|
X | 要显示的图像数据,可以是2D数组(灰度图)或3D数组(彩色图) |
cmap | 指定图像的颜色映射。 |
norm | 可选参数,字符串或Normalize,将数字映射到颜色之前的标准化方法,默认线性标准化方式,最小值标准化为0,最大值标准化为1;取值为字符串时可以指定标准化方法:“linear”, “log”, “symlog”, “logit” 等。 |
vmin,vmax | 当使用标量数据且没有显式的norm时,vmin和vmax定义了色图所覆盖的数据范围。默认情况下,色图覆盖了提供的数据的完整值范围。一般不与norm参数同时使用:指定对数据标准化,或指定数据最大、最小值 |
aspect | Axes的纵横比,这个参数对于图像特别重要,因为它决定了数据像素是否是正方形的。默认为:equal |
interpolation | 指定图像处理的插值方法 |
alpha | 图像的透明度 |
origin | 图像的原点位置,可以是’upper’、'lower’中的一个,默认为upper |
extent | 表示图像在坐标系中的位置和大小,用四个数字表示(左、右、下、上),默认值与origin的位置有关:当origin=‘upper’:位置为(-0.5ncols-0.5,nrows-0.5,-0.5);当origin=‘lower’:位置为:(-0.5, numcols-0.5, -0.5, numrows-0.5) |
3.1 简单展示
mt_zone = data_clean.pivot_table(values='数量',index='月',columns='销售区域',aggfunc='sum')
mt_zone
plt.imshow(mt_zone,cmap='Greens',vmin=0,vmax=60000)
plt.colorbar()
plt.show()
mt1=mt_zone.loc[[7],]
plt.imshow(mt1,cmap='BuPu',norm='linear')
plt.colorbar()
plt.xticks(ticks = np.arange(0,6),labels=mt1.columns)
plt.show()
3.2 参数调整
3.2.1 指定原点位置:origin
# 指定origin的位置,指定在下方
plt.imshow(mt_zone,cmap='BuPu',norm='linear',origin='lower')
plt.colorbar()
#plt.xticks(ticks = np.arange(0,6),labels=mt_zone.columns)
# plt.yticks(ticks=np.arange(0,6),labels=mt_zone.index)
plt.show()
3.2.2 添加数值
mt1 = mt_zone.loc[[7],]
plt.imshow(mt_zone,cmap='BuPu',norm='linear',origin='upper')
plt.colorbar()
plt.xticks(ticks = np.arange(0,6),labels=mt_zone.columns)
plt.yticks(ticks=np.arange(0,6),labels=mt_zone.index)
for i in range(mt_zone.shape[1]):
for j in range(mt_zone.shape[0]):
#print(i,j,mt_zone.iloc[i,j])
plt.text(j,i,mt_zone.iloc[i,j],ha='center',va='center')
3.2.3 设置没格的形状。默认为正方形
mt1 = mt_zone.loc[[7],]
plt.imshow(mt_zone,cmap='BuPu',norm='linear',origin='upper',aspect='auto')
plt.colorbar()
plt.xticks(ticks = np.arange(0,6),labels=mt_zone.columns)
plt.yticks(ticks=np.arange(0,6),labels=mt_zone.index)
for i in range(mt_zone.shape[1]):
for j in range(mt_zone.shape[0]):
#print(i,j,mt_zone.iloc[i,j])
plt.text(j,i,mt_zone.iloc[i,j],ha='center',va='center')
参考内容:https://matplotlib.org/stable/api/_as_gen/matplotlib.pyplot.imshow.html