Python:使用matplotlib.pyplot的奇怪x轴限制
(这里是Python新手)作为一个学习练习,我试图解决并绘制一个非常简单的ODE的解决方案:dy/dt=y,y(0)=1。我相信我的代码来解决ODE是正确的,但x轴的限制情节是非常奇怪的。我制作了50个等间距的x值,范围从0到5,但看起来好像Python:使用matplotlib.pyplot的奇怪x轴限制,python,matplotlib,plot,Python,Matplotlib,Plot,(这里是Python新手)作为一个学习练习,我试图解决并绘制一个非常简单的ODE的解决方案:dy/dt=y,y(0)=1。我相信我的代码来解决ODE是正确的,但x轴的限制情节是非常奇怪的。我制作了50个等间距的x值,范围从0到5,但看起来好像plt.plot()只绘制了前两点,导致图形看起来像一条直线,而不是曲线y=e^x。我尝试了使用plt.plot()的'scalex'和'scaley'参数,还尝试了plt.xlim=(0,5),以及它们的变体,但没有效果。我的代码如下(我使用的是Pytho
plt.plot()
只绘制了前两点,导致图形看起来像一条直线,而不是曲线y=e^x。我尝试了使用plt.plot()
的'scalex'和'scaley'参数,还尝试了plt.xlim=(0,5)
,以及它们的变体,但没有效果。我的代码如下(我使用的是Python 3.7.6):
下面是我得到的情节:
我确实尝试过设置y=np.exp(t0)
,然后绘制t0与y0,这非常有效(即x值在0到5之间)。所以我不确定为什么我的原始代码没有给我相同类型的图。也许我试图将变量子集为out
不正确。。。任何帮助都将不胜感激 通过查看,您可以看到t\u span
应该是一个2元组的浮点,并且您可以使用max\u step
因此,您可以:
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
def f(t,y):
return(y)
out = solve_ivp(f, (0, 5), [1], max_step=0.1)
t_vals = out.t
y_vals = out.y[0,:]
plt.plot(t_vals,y_vals)
这将为您提供预期的图形:
谢谢!我没有仔细阅读文档:)
from scipy.integrate import solve_ivp
import matplotlib.pyplot as plt
def f(t,y):
return(y)
out = solve_ivp(f, (0, 5), [1], max_step=0.1)
t_vals = out.t
y_vals = out.y[0,:]
plt.plot(t_vals,y_vals)