matplotlib绘制热力图 主要是有两种方式
需要矩阵形式的数据,热力图用颜色的山前表示数据对应位置的大小
第一种方式matplotlib.pyplot.imshow()
imshow()主要是用于在坐标轴上展示图片,所以可以用来绘制热力图
用法
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)
这里参数就不全部介绍了,因为不是主要绘制热力图的,
介绍下cmap这个参数
官方网址
-
统一的序列颜色映射,(中间对应的颜色值命名)
-
顺序颜色序列(以色系名称命名,由低饱和度到高过度)
第二种是以二进制颜色代码命名,这个需要查下
-
发散的颜色 向两端发散
-
离散化的色系
-
不均一的颜色系列
案例
import numpy as np
import matplotlib.pyplot as plt
# cmap=cm.hot
x = np.random.rand(100).reshape(10,10)
plt.imshow(x, cmap=plt.cm.hot, vmin=0, vmax=1)
plt.colorbar()
plt.show()
离散化色系演示
import numpy as np
import matplotlib.pyplot as plt
# 离散化色系演示
# plt.Set3(np.linsapce(0,1,12)
x = np.random.rand(100).reshape(10,10)
plt.imshow(x, cmap=plt.cm.Set3, vmin=0, vmax=1)
plt.colorbar()
plt.show()
第二种方法,matplotlib.pyplot.matshow()
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(10, 10)
plt.matshow(x, cmap = plt.cm.winter, vmin=0, vmax=1)
plt.colorbar()
plt.show()