python - 无意中在 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, 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 将两者绘制为两条单独的线。
推荐阅读
- vue.js - 如何在 VueJs 中对值求和
- angular - 如何使用 Angular2 创建带有图形/图表的 pdf 文件?
- javascript - 如何以功能方式提供配置
- c++ - 如何编写将 LinkedList& 作为 C++ 输入的合并排序函数?
- python - 从另一个文件中的函数返回 DataFrame
- nuget-package - 您可以在 NuGet 包中定位 .NET Framework、.NET Standard 和 .NET Core 吗?
- android - 当我用 android studio 导入 opencv 时,它没有完成
- flutter - Flutter - 有没有办法让日历逐年移动?
- html - 麻烦定位元素。与 CSS
- c++ - 不同类型的新展示位置