Matplotlib imshow()函数
imshow详解热图知识
热图(heatmap)是数据分析的常用方法,通过色差、亮度来展示数据的差异、易于理解。Python在Matplotlib库中,调用imshow()函数实现热图绘制。
参考资料:http://matplotlib.org/users/image_tutorial.html
imshow函数说明
imshow(X, cmap=None, norm=None, aspect=None, interpolation=None, alpha=None, vmin=None, vmax=None, origin=None, extent=None, shape=None, filternorm=1, filterrad=4.0, imlim=None, resample=None, url=None, hold=None, data=None, **kwargs)
其中,X变量存储图像,可以是浮点型数组、unit8数组以及PIL图像,如果其为数组,则需满足一下形状:
(1) M*N 此时数组必须为浮点型,其中值为该坐标的灰度;
(2) M*N*3 RGB(浮点型或者unit8类型)
(3) M*N*4 RGBA(浮点型或者unit8类型)
代码如下:
import matplotlib.pyplot as plt
X = [[1, 2], [3, 4], [5, 6]]
plt.imshow(X)
plt.colorbar()
plt.show()
运行的结果如下图:
代码中 plt.imshow(X) 中传入的数组X=[[1,2],[3,4],[5,6]] 是对应的颜色
1:代表右侧颜色bar上 数字1 位置的深紫色
2:数字2位置的蓝色
3:颜色bar上数字3位置的深绿色
4:数字4位置浅绿色
5:数字5位置草绿色
6:黄色
plt.colorbar(cax=None,ax=None,shrink=0.5)可设置Bar为一半长度。
代码如下
import matplotlib.pyplot as plt
X = [[1, 2], [3, 4], [5, 6]]
plt.imshow(X)
plt.colorbar(cax=None, ax=None, shrink=0.5)
plt.show()
运行结果如图
Colormap:参数cmap用于设置热图的Colormap。(参考百度百科)
Colormap是MATLAB里面用来设定和获取当前色图的函数,可以设置如下色图:
hot 从黑平滑过度到红、橙色和黄色的背景色,然后到白色。
cool 包含青绿色和品红色的阴影色。从青绿色平滑变化到品红色。
gray 返回线性灰度色图。
bone 具有较高的蓝色成分的灰度色图。该色图用于对灰度图添加电子的视图。
white 全白的单色色图。
spring 包含品红和黄的阴影颜色。
summer 包含绿和黄的阴影颜色。
autumn 从红色平滑变化到橙色,然后到黄色。
winter 包含蓝和绿的阴影色。
下面这段代码是显示原图、灰度(gray)、和春夏秋冬的示例。
import matplotlib.pyplot as plt
X = [[1, 2], [3, 4]]
fig = plt.figure()
ax = fig.add_subplot(231)
ax.imshow(X)
ax = fig.add_subplot(232)
im = ax.imshow(X, cmap=plt.cm.gray) #灰度
plt.colorbar(im, cax=None, ax=None, shrink=0.5)
ax = fig.add_subplot(233)
im = ax.imshow(X, cmap=plt.cm.spring) #春
plt.colorbar(im, cax=None, ax=None, shrink=0.5)
ax = fig.add_subplot(234)
im = ax.imshow(X, cmap=plt.cm.summer) #夏
plt.colorbar(im, cax=None, ax=None, shrink=0.5)
ax = fig.add_subplot(235)
im = ax.imshow(X, cmap=plt.cm.autumn)
plt.colorbar(im, shrink=0.5, ticks=[-1, 0, 1])
ax = fig.add_subplot(236)
im = ax.imshow(X, cmap=plt.cm.winter)
plt.colorbar(im, shrink=0.5)
plt.show()
运行的结果如下图
更多推荐
所有评论(0)