2016-11-30 77 views
1

我愿意用下面的代码来绘制一个简单矢量场:减少边界

import numpy 
import matplotlib.pyplot as plt 

def plot_quiver(vx, vy, fp): 
    plt.figure() 

    x_steps, y_steps = vx.shape 

    x, y = numpy.meshgrid(numpy.linspace(0, x_steps, x_steps), numpy.linspace(0, y_steps, y_steps)) 
    m = numpy.sqrt(numpy.power(vx, 2) + numpy.power(vy, 2)) 

    fig = plt.quiver(x, y, vx, vy, m) 
    plt.axes().set_aspect('equal') 

    l, r, b, t = plt.axis() 
    dx, dy = r-l, t-b 
    plt.axis([l-0.1*dx, r+0.1*dx, b-0.1*dy, t+0.1*dy]) 

    plt.savefig(fp, format='pdf', bbox_inches='tight') 
    plt.show() 
    plt.close() 

我不明白的是为什么我有更广泛的顶部和右侧边框,以及如何调整吧。

enter image description here

回答

1

matplotlib看来你的矢量场的大小后,将获得下一回合数。
Here r, t = 70, 70。 为确保您的问题不取决于matplotlib的缩放比例,请使用
plt.axis([-0.1*x_steps, 1.1*x_steps, -0.1*y_steps, 1.1*y_steps])