我想在给定 3 个相同大小的 numpy 数组的情况下绘制 2D 等高线图 X Y Z 的坐标为 (X,Y),Z 为 (X,Y) 处的值。
现在,函数 plt.contour
似乎仅适用于网格以及网格交叉处的值,并且仅将矩形网格作为输入,并仅以 2D 矩阵作为输入。
参见http://matplotlib.org/examples/pylab_examples/contour_demo.html
如果该函数的输入是 (XX,YY,ZZ),则 XX 是一个二维矩形数组,其中每行相同且每列恒定,而 YY 是一个二维矩形数组,其中每列都相同,并且每条线都是恒定的。
现在,如果我想在输入值不是网格上的值时绘制等高线图,我应该使用什么函数,或者应该遵循什么程序?
谢谢
最佳答案
尝试使用plt.tricontour
:http://matplotlib.org/api/pyplot_api.html?highlight=tricontour#matplotlib.pyplot.tricontour
它在非结构化三角形网格上绘制轮廓。
小例子:
import numpy as np
import matplotlib.pyplot as plt
x = np.random.rand(100)
y = np.random.rand(100)
z = x**2+np.sin(y)*y
f, ax = plt.subplots(1,1)
ax.tricontour(x,y,z)
ax.plot(x,y, 'r. ')
plt.show()
关于python - Python 中的 plt.contour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37639849/