使用两种不同的方法(箭头/ streamplot)绘制矢量场,从而得到不匹配的图 - Matplotlib

时间:2014-05-31 01:10:34

标签: python numpy matplotlib plot

我试图在Python中使用 Matplotlib 绘制一些矢量流,并且我遇到了一些麻烦...

我试图比较两种方法,quiverstreamplot()。我已经阅读了两份文件,但我无法获得相同的结果。

我用这两种方法绘制载体:

import matplotlib.pyplot as plt
import numpy

def plot_quiver(x_dim, y_dim, steps, vector_field_x, vector_field_y, file_path):
    plt.figure()

    x, y = numpy.mgrid[-x_dim/2:x_dim/2:steps*1j, -y_dim/2:y_dim/2:steps*1j]

    plt.quiver(x, y, vector_field_x, vector_field_y)

    plt.savefig(file_path + '.png')
    plt.close()


def plot_streamlines(file_path, x_dim, y_dim, steps, vector_field_x, vector_field_y, scalar_field=None):
    plt.figure()

    y, x = numpy.mgrid[-x_dim/2:x_dim/2:steps*1j, -y_dim/2:y_dim/2:steps*1j]

    plt.figure()

    if scalar_field is not None:
        cs = plt.contour(x, y, scalar_field, extent=[-x_dim/2.0, x_dim/2.0, -y_dim/2.0, y_dim/2.0])
        plt.clabel(cs, inline=1, fontsize=10)

    # x, y : 1d arrays, an evenly spaced grid.
    # u, v : 2d arrays
    # x and y-velocities. Number of rows should match length of y, and the number of columns should match x.
    plt.streamplot(x, y, vector_field_x, vector_field_y, cmap=plt.cm.autumn)

    plt.savefig(file_path + '.png')
    plt.close()

然而,我只是不知道如何让两个情节相等"等于#34;。

第一种方法绘制了这张图片(这正是我所期待的):

enter image description here

第二个给了我这个:

enter image description here

我不知道我必须做什么,所以他们匹配。我尝试了所有可能的组合而一无所获......

我真的需要两种可视化。

任何帮助将不胜感激。 提前谢谢。

0 个答案:

没有答案