微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

无意中在 matplotlib 中绘制多行

如何解决无意中在 matplotlib 中绘制多行

我仍然熟悉 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,(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 将两者都绘制为两条单独的线。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。