python菜鸟求助,使用matplotlib 绘制contour等高线图,z为2D数组

2024-12-05 00:43:45
推荐回答(2个)
回答1:

以画 z=x^2+y^2 的等高线为例,简单介绍用 matplotlib 画等高线的方法.

首先看下 z=x^2+y^2 的三维图像:

import numpy as npfrom matplotlib import cmimport matplotlib.pyplot as pltfrom mpl_toolkits.mplot3d import Axes3D

delta = 0.2x = np.arange(-3, 3, delta)
y = np.arange(-3, 3, delta)
X, Y = np.meshgrid(x, y)
Z = X**2 + Y**2x=X.flatten()
y=Y.flatten()
z=Z.flatten()

fig = plt.figure()
ax = fig.gca(projection='3d')
ax.plot_trisurf(x, y, z, cmap=cm.jet, linewidth=0.01)
plt.show()

下面画出这个图形的等高线:

plt.contour(X, Y, Z) #注意这里是大写X ,Y,Z

如果只想画出 z=1,z=2,z=3 这 3 条等高线:

plt.contour(X, Y, Z,[1,2,3])

回答2:

使用matplotlib 绘制contour等高线图
数据结构的逻辑结构和硬件是没有关系的,而其存储结构受到计算机硬件系统工作方式的影响,通常这点影响在于数据时顺序存储还是离散存储。算法的基础是数据结构。只有指定明确的数据结构,算法才能设计完成,脱离数据结构,算法是无法,也不可能成立的。因为不需要数据的算法就不是一个有效的计算机算法,算法中任何对数据的组织形式都可以被称之为数据结构。

数据结构在编程中的地位是极其重要的,是一个程序实现的基础中的基础,在此基础上才能构建算法。

通常而言,你不了解什么高深的算法,一样能完成工作,但是如果你不了解基本的数据结构,那么可以说,你根本就不能完成一个任何有实质性内容的程序。

Donald Ervin Knuth教授在其《计算机程序设计艺术》的第一卷《基本算法》中花费的绝大部分的篇幅去论述数据结构。由此可见数据结构对算法的重要性。