matplotlib.pyplot contourf
coutour([X, Y,] Z,[levels], **kwargs)
是来绘制等高线的,contour和contourf都是画三维等高线图的,不同点在于contour() 是绘制轮廓线,contourf()会填充轮廓。除非另有说明,否则两个版本的函数是相同的。
参数: X,Y:类似数组,可选
为Z中的坐标值
当 X,Y,Z 都是 2 维数组时,它们的形状必须相同。如果都是 1 维数组时,len(X)是 Z 的列数,而 len(Y) 是 Z 中的行数。(例如,经由创建numpy.meshgrid())
Z:类似矩阵
绘制轮廓的高度值
levels:int或类似数组,可选
确定轮廓线/区域的数量和位置
其他参数: aalpha:float ,可选
alpha混合值,介于0(透明)和1(不透明)之间。
cmap:str或colormap ,可选
Colormap用于将数据值(浮点数)从间隔转换为相应Colormap表示的RGBA颜色。用于将数据缩放到间隔中看 。
Example:
要画出等高线,核心函数是plt.contourf(),但在这个函数中输入的参数是x,y对应的网格数据以及此网格对应的高度值,因此我们调用np.meshgrid(x,y)把x,y值转换成网格数据:
import numpy as np import pandas as pd import matplotlib.pyplot as plt # 计算x,y坐标对应的高度值 def f(x, y): return (1-x/2+x**3+y**5) * np.exp(-x**2-y**2) # 生成x,y的数据 n = 256 x = np.linspace(-3, 3, n) y = np.linspace(-3, 3, n) # 把x,y数据生成mesh网格状的数据,因为等高线的显示是在网格的基础上添加上高度值 X, Y = np.meshgrid(x, y) # 填充等高线 plt.contourf(X, Y, f(X, Y)) # 显示图表 plt.show()
显示的图为:
如果想显示热力图,那只要在plt.contourf()函数中添加属性cmap=plt.cm.hot就能显示热力图,其中cmap代表为color map,我们把color map映射成hot(热力图)