一、plt.contourf简介
plt.contourf是matplotlib中一个非常重要的函数,用于绘制等高线图,其中f表示filled,绘制的颜色由函数值所表示的“高度”决定,通常用于表示2D函数的等值线分布。
二、plt.contourf的参数
plt.contourf函数具有多个参数,其中x,y分别表示x轴和y轴上的坐标数组;Z表示在这些坐标上对应的函数值;levels代表要绘制的等值线的高度;cmap是颜色选择;alpha是透明度;linewidths表示等值线的宽度等等。实际上,plt.contourf函数可以绘制出更加高级的等高线图,但本文着重介绍最基础的内容。
# 简单使用示例 plt.contourf(x, y, z) # 绘制等高线图,只传入x、y和z三个参数 plt.colorbar() # 添加颜色条
本例中的x、y、z数组均为二维数组,其形状分别为N行M列。使用时需要保证x和y的形状和z相同。
三、plt.contourf的应用场景
1. 表示2D函数的等值线分布
对于一个二维函数f(x, y),我们可以通过plt.contourf函数将其等值线画出来,其中x和y是变量,z=f(x,y)。
import numpy as np import matplotlib.pyplot as plt # 定义函数 def f(x, y): return np.sin(np.sqrt(x ** 2 + y ** 2)) # 生成网格数据 x = np.linspace(-10, 10, 500) # x坐标 y = np.linspace(-10, 10, 500) # y坐标 X, Y = np.meshgrid(x, y) # 生成二维网格数据 z = f(X, Y) # 计算得到z值 # 绘制图像 plt.contourf(X, Y, z, cmap='cool') # 绘制等值面 plt.colorbar() # 添加颜色条 plt.show()
运行结果如下图所示,等值线的颜色随着函数值的变化而变换,越靠近最高点颜色越亮。
2. 地图绘制
在地理信息学中,人们常常需要绘制各种特征地图,比如地形高度图、气象预报图等。利用plt.contourf函数,我们可以非常轻松地实现这一目标。
import numpy as np import matplotlib.pyplot as plt # 生成网格数据 x = np.linspace(0, 10, 50) y = np.linspace(0, 10, 50) X, Y = np.meshgrid(x, y) # 定义一个简单的高度分布函数,这里是正弦函数 z = 2 * np.sin(X) + 3 * np.sin(Y) # 绘制等高线图 plt.contourf(X, Y, z, cmap='cool') plt.colorbar() # 添加地图信息 plt.title('等高线地图') plt.xlabel('经度') plt.ylabel('纬度') plt.grid(True) plt.show()
运行结果如下图所示,色彩分布从深红到浅绿,更好地显示了地势高低差异。使用等高线还可以更加准确地描述地势,从而更好地预测地图上海拔高度的走势。
3. 三维数据的可视化
plt.contourf函数还可以绘制三维数据的可视化效果。在这里,我们可以设置z值作为颜色来表示数据的变化医,并用不同的颜色填充不同的元素。
import numpy as np import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D # 生成网格数据 x = np.linspace(-10, 10, 50) y = np.linspace(-10, 10, 50) X, Y = np.meshgrid(x, y) # 定义一个三维数据(X, Y, Z),这里使用正弦函数 Z = np.sin(np.sqrt(X ** 2 + Y ** 2)) # 绘制三维图像 fig = plt.figure() ax = fig.gca(projection='3d') # 创建3D坐标系 surf = ax.plot_surface(X, Y, Z, cmap='cool') # 绘制表面 plt.colorbar(surf) plt.show()
运行结果如下图所示,颜色鲜明,营造出充满科技感的立体画面,使数据的呈现更加形象生动了。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/293132.html