我正试图用Matplotlib绘制一些流线。
到目前为止,我有这段代码,作为绘制向量场的示例:
def plot_streamlines(file_path, vector_field_x, vector_field_y):
plt.figure()
y, x = numpy.mgrid[-2:2:10j, -2:2:10j]
plt.streamplot(x, y, vector_field_x, vector_field_y, color='y', cmap=plt.cm.autumn)
plt.savefig(file_path + '.png')
plt.close()
这可以正常工作,但是如果我改变这条线:
y, x = numpy.mgrid[-2:2:10j, -2:2:10j]
对于那个:
x, y = numpy.mgrid[-2:2:10j, -2:2:10j]
我得到一些错误:
Traceback (most recent call last):
File "Library/Python/2.7/lib/python/site-packages/matplotlib/pyplot.py", line 3224, in streamplot minlength=minlength, transform=transform)
File "/Library/Python/2.7/lib/python/site-packages/matplotlib/axes.py", line 6861, in streamplot transform=transform)
File "Library/Python/2.7/lib/python/site-packages/matplotlib/streamplot.py", line 67, in streamplot grid = Grid(x, y)
File "Library/Python/2.7/lib/python/site-packages/matplotlib/streamplot.py", line 256, in __init__
assert np.allclose(x_row, x)
AssertionError
我不知道如何使用“标准”顺序,因为我的网格是平方的。此外,如果我的x和y维度相同,我不知道如何得到这些错误。
任何帮助都将不胜感激。
谢谢你。
根据
streamplot
documentation:在您的情况下,相当于
Y, X = np.mgrid[-3:3:100j, -3:3:100j]
的详细信息是:你可以安全地通过
x, y
或y, x
到streamplot
。不过,(有点宽大?)如果二维数组的形式是
X, Y = numpy.meshgrid(x_1d, y_1d)
,则似乎可以接受它们。但不幸的是没有Y, X = numpy.meshgrid(x_1d, y_1d)
。pylab示例使用
Y,X
,然后使用numpy.mgrid为streamplots绘制X,Y。取自here。
这似乎与数据在x轴和y轴、-2、2等方面的外观有直接关系。。类似于x轴,y值类似于y轴。
相关问题 更多 >
编程相关推荐