如何很好地缩放同一图上的图和矢量场? [怪异的秤]

时间:2018-11-30 23:08:49

标签: python numpy matplotlib plot

我是matplotlib的新手,正在尝试在同一图上绘制2个图和一个矢量场。

当我运行下面的代码时,我遇到了一些扩展问题。我认为这是由于图中的y轴未定义,但我无法弄清楚如何用y绘制它们。当我定义y的间隔时,我得到了非常奇怪的照片。我需要一些高分辨率图片[0,7],[0,7],用于图形和矢量场。当我运行下面的代码时,我从不想绘制的负y轴获得了结果。

我也想知道如何才能使该绘图更大和更高分辨率。当前图像的尺寸很小。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.gridspec as gridspec

#graphs
a=1
b=1
x= np.mgrid[0:6:15j]   #problematic part I assume
k = b/(a*x)
l = (-1 + (b+1)*x) / (a*(x**2))

ca =plt.plot(x, k, x,l)
#Vector Field,Quiver 
Y, X = np.mgrid[0:6:12j, 0:6:12j]

U = 1- (b + 1)* X + ( a*(X**2) * Y)
V = (b * X) - (a * X**2 * Y)

speed = np.sqrt(U**2 + V**2)
UN = U/speed
VN = V/speed

quiv = plt.quiver(X, Y, UN, VN, 
           color='Black', 
           headlength=5)
plt.show()

1 个答案:

答案 0 :(得分:1)

当我运行您的代码时,我得到除以零的运行时警告,该警告将k的第一个值设为无限大,将l的第一个值设为无限大。但是不确定那是您的问题,扩展问题到底是什么意思?您是否希望图表专注于x和y的特定范围?您通常会使用plt.xlimplt.ylim进行此类操作。尝试添加如下内容:

plt.ylim((-0.2,6.2))

如果从命令行运行,则还应该能够手动调整图形大小(仅通过拖动窗口的一角),然后保存该图形即可获得更大的图像。如果您需要更高的分辨率或更精确的控制,请查看savefig函数。您可以在运行show()之前调用它。