如何保存箭袋图

2024-06-10 05:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

让我给你看看我的代码

array['fieldv'].shape
(112, 750, 750, 2)

如果我绘制一个元素,这个图像就会出现

%matplotlib inline
U, V  = array['fieldv'][10,:,:,0], array['fieldv'][10,:,:,1]
plt.quiver(U[::4,::4], V[::4, ::4])

enter image description here

现在我的问题是:如何将112个元素的所有箭袋保存在一个目录中? 我给你看我的代码,它不工作

%matplotlib inline

i = 0
while i != len(array['fieldv'][0]):
    U, V  = array['fieldv'][i:,:,0], array['fieldv'][i,:,:,1]
    fig = plt.quiver(U[::4,::4], V[::4, ::4])

    filename = '/home/rr/workspace/TEST/OUTPUT/vectorf/'
    fig.savefig(filename + 'TEST_' + str(i) + '.png')
    i += 1

Tags: 代码test图像元素matplotlibfig绘制inline
1条回答
网友
1楼 · 发布于 2024-06-10 05:29:04

plt.quiver不返回地物实例(选中type(fig),您将看到plt.quiver实际上创建了一个Quiver实例)。Quiver对象没有savefig方法,因此fig.savefig将无法工作。但是,您应该能够将fig.savefig命令与plt.savefig交换

作为更一般的评论,我认为在这里使用for循环比使用while语句更合适。我会这样做的。我还认为.format有点整洁:plt.savefig('{}TEST_{}.png'.format(filename, i))

总而言之,我会:

filename = '/home/rr/workspace/TEST/OUTPUT/vectorf/'

for i in range(array['fieldv'].shape[0]):
    U, V  = array['fieldv'][i:,:,0], array['fieldv'][i,:,:,1]
    Q = plt.quiver(U[::4,::4], V[::4, ::4])

    plt.savefig('{}TEST_{}.png'.format(filename, i))

相关问题 更多 >