我仍然对matplotlib库很熟悉,并且遇到了从未遇到过的问题。我的意图是根据该scipy.integrate.quadrature
方法的公差值绘制与该方法相关的相对误差。但是,当我绘制它时遇到的是来自同一plt.plot命令的两条截然不同的行。这怎么发生的?我将代码放在下面。
from scipy import integrate
def f(x):<br/>
return np.sqrt(1 - x**2)<br/>
xlist = []<br/>
for i in range (-12, 0):<br/>
xlist.append(i)<br/>
tolerancelist = []<br/>
for i in xlist:<br/>
tolerancelist.append(10**i)<br/>
ylist = []<br/>
for i in tolerancelist:<br/>
q = integrate.quadrature(f, -1, 1, tol=i)<br/>
ylist.append(q)<br/>
plt.plot(tolerancelist, ylist, label='line1')<br/>
legend = plt.legend(loc='best')
如果您打印ylist,您将对正在发生的事情有更好的了解。
[(1.5708027245307299, 3.9572988685954158e-07),
(1.5708027245307299, 3.9572988685954158e-07),
(1.5708027245307299, 3.9572988685954158e-07),
(1.5708027245307299, 3.9572988685954158e-07),
(1.5708027245307299, 3.9572988685954158e-07),
(1.5708027245307299, 3.9572988685954158e-07),
(1.5708087325834776, 9.6666040283466259e-07),
(1.5708599005218433, 8.8700570273214652e-06),
(1.571132830068839, 8.7760917619084111e-05),
(1.5721552241258274, 0.00062673127406376317),
(1.5759063348593505, 0.0043711928407235145),
(1.5916172578151968, 0.041375904040254818)]
ylist中的每个值实际上是两个值的元组。Matplotlib将两者绘制为两条单独的线。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句