我是matplotlib的新手,尝试在同一个图上绘制两个图形和一个向量场
当我运行下面的代码时,我遇到了一些缩放问题。我猜想这是由于图上未定义的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()
当我运行您的代码时,我会收到运行时警告,表示被零除,这会使k的第一个值变成无穷大,而l的第一个值变成无穷大。但不确定这是你的问题,你所说的缩放问题到底是什么意思?是否希望图形集中在x和y的特定范围内?你通常会用plt.xlim和plt.ylim来做这类事情。尝试添加如下内容:
如果从命令行运行此操作,还应该能够手动调整图形的大小(只需拖动窗口的一角),并保存该图形以获得更大的图像。如果您需要更高的分辨率或更精确的控件,请查看savefig函数。可以在运行show()之前调用它
相关问题 更多 >
编程相关推荐