我想做一个二维轮廓图,给出3个大小相同的数组X,Y,Z和(X,Y)的坐标,Z是(X,Y)的值。
现在,函数plt.contour似乎只对网格和网格交点处的值起作用,并将只有2D矩阵作为输入的矩形网格作为输入。
请参阅http://matplotlib.org/examples/pylab_examples/contour_demo.html
如果该函数的输入是( XX,YY,ZZ),那么XX是2D矩形数组,其中每行都是相同的,并且每列都是常数,而YY是2D矩形数组,其中每列都是相同的,并且每行都是常数。
现在,如果我想要在输入值不是网格上的值时绘制等高线图,我应该使用什么函数,或者应该遵循什么程序?
谢谢
发布于 2016-06-05 16:41:32
尝试使用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()

https://stackoverflow.com/questions/37639849
复制相似问题