10、等高线图

目录


等高线图(有时也叫水平图)是在二维平面上显示三维曲面的一种方法。它将y轴上的两个预测变量X Y和一个响应变量Z绘制成等值线图。这些等高线有时被称为z切片或等值线响应值。

如果你想知道Z的变化是如何作为两个输入X和Y的函数,如Z=f(X,Y),等高线图是合适的。两个变量函数的等高线或等值线是一条曲线,该函数的数值是恒定的。

独立变量x和y通常被限制在一个叫做meshgrid的规则网格中。numpy.meshgrid可以用x值的数组和y值的数组创建一个矩形网格。

Matplotlib API包含contour()和contourf()函数,分别绘制等高线和填充等高线。这两个函数都需要三个参数x,y和z。

import numpy as np
import matplotlib.pyplot as plt
xlist = np.linspace(-3.0, 3.0, 100)
ylist = np.linspace(-3.0, 3.0, 100)
X, Y = np.meshgrid(xlist, ylist)
Z = np.sqrt(X**2 + Y**2)
fig,ax=plt.subplots(1,1)
cp = ax.contourf(X, Y, Z)
fig.colorbar(cp) # Add a colorbar to a plot
ax.set_title('Filled Contours Plot')
#ax.set_xlabel('x (cm)')
ax.set_ylabel('y (cm)')
plt.show()

显示结果如下:
在这里插入图片描述
X, Y = np.meshgrid(x, y) 代表的是将x中每一个数据和y中每一个数据组合生成很多点,然后将这些点的x坐标放入到X中,y坐标放入Y中,并且相应位置是对应的,如下所示:

: x = [1, 2, 3, 4]
    y = [7, 8, 9]
   
x和y中的每一个元素组合生成
[[[1, 7], [2, 7], [3, 7], [4, 7]],
 [[1, 8], [2, 8], [3, 8], [4, 8]],
 [[1, 9], [2, 9], [3, 9], [4, 9]]]
 
然后
再分别放入X和Y中
X = [[1, 2, 3, 4],
	 [1, 2, 3, 4],
	 [1, 2, 3, 4]]

Y = [[7, 7, 7, 7],
	 [8, 8, 8, 8],
	 [9, 9, 9, 9],]

coutour([X, Y,] Z,[levels], **kwargs),是来绘制等高线的,contour和contourf都是画三维等高线图的,不同点在于contour() 是绘制轮廓线,contourf()会填充轮廓。除非另有说明,否则两个版本的函数是相同的。具体实例见这里

猜你喜欢

转载自blog.csdn.net/weixin_45671036/article/details/112784304
今日推荐