matplotlib.pyplot contourf()函数的使用

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()

显示的图为:

matplotlib.pyplot contourf()函数的使用_第1张图片

如果想显示热力图,那只要在plt.contourf()函数中添加属性cmap=plt.cm.hot就能显示热力图,其中cmap代表为color map,我们把color map映射成hot(热力图)

# 填充等高线
plt.contourf(X, Y, f(X, Y), cmap=plt.cm.hot)

显示的图为:

matplotlib.pyplot contourf()函数的使用_第2张图片

 

 

 

 

 

参考文章:

用matplotlib画等高线图详解

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(matplotlib)