Python:使用matplotlib.pyplot的奇怪x轴限制

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

(这里是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)
,以及它们的变体,但没有效果。我的代码如下(我使用的是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)