Python 在同一个图上绘制函数、函数的一阶导数和函数的不定积分时有困难的

Python 在同一个图上绘制函数、函数的一阶导数和函数的不定积分时有困难的,python,plot,anaconda,integrate,derivative,Python,Plot,Anaconda,Integrate,Derivative,我正在尝试用Python复制我以前在Matlab中绘制的一个绘图,其中三个函数绘制在相同的xy轴上 红线表示函数y=1/(1+(x^2)),蓝线表示其一阶导数,绿线表示其不定积分 我在两个方面有问题: 1) 我尝试了几种不同的方法,但无法将y轴范围设置为-1.5到1.5 2) 我在尝试绘制第三条线,即积分时收到错误“ValueError:x和y必须具有相同的第一维度” 正如你在下面的代码中看到的,我实际上使用了从-无穷到无穷的定积分,因为我也不知道如何写不定积分。因此,您在这里提供的任何帮助都会

我正在尝试用Python复制我以前在Matlab中绘制的一个绘图,其中三个函数绘制在相同的xy轴上

红线表示函数y=1/(1+(x^2)),蓝线表示其一阶导数,绿线表示其不定积分

我在两个方面有问题:

1) 我尝试了几种不同的方法,但无法将y轴范围设置为-1.5到1.5

2) 我在尝试绘制第三条线,即积分时收到错误“ValueError:x和y必须具有相同的第一维度”

正如你在下面的代码中看到的,我实际上使用了从-无穷到无穷的定积分,因为我也不知道如何写不定积分。因此,您在这里提供的任何帮助都会有所帮助

from scipy.misc import derivative as deriv
import numpy as np
import scipy.integrate as integ
import pylab as pyl

f = lambda x : 1 / (1 + x**2)

x = np.arange(-10, 10, 0.01)

d = deriv(f,x)

i = integ.quad(f,-np.inf,np.inf)

pyl.plot(x,f(x),'r-')
pyl.plot(x,d,'b-')
pyl.plot(x,i,'g-')
pyl.ylim(-1.5,1.5)
pyl.show()
我从代码中得到的图形显示了正确的红色和蓝色函数,但是y轴显然不太正确,并且绿色函数没有显示(由于前面提到的错误)


我非常感谢任何人提供的任何帮助。

您似乎误用了
scipy.integrate.quad
。此函数给出两个值之间的定积分。从文档中:

>>> f = lambda x,a : a*x
>>> y, err = integrate.quad(f, 0, 1, args=(1,))
>>> y
0.5
这将返回整数的值和元组中该值的错误。您正试图根据
x=np.arange(-10,10,0.01)
数组绘制该元组。很明显,元组和数组的大小不匹配,因此无法绘制数据

如果要在所有指定X坐标的积分值处绘制直线,可以使用:

pyl.hlines(i[0],x[0],x[-1])

1.您已经导入了
numpy
,因此不需要完整的
pylab
,只需导入
matplotlib.pyplot作为plt
。2.计算一个函数的积分,该函数返回一个数字(在本例中加上一个误差估计值,请参见),您希望如何绘制它?