我发现Spyder 4中的图形查看器对于比较同类数据非常方便,比如说,如果分析方式明确并且只是比较数据。不过,对于尝试来说,这确实很不舒服,Spyder 总是为 plt.plot 的每一行打开一个新图形。
我现在拥有的是:
import numpy as np
def Gauss(beta0, x):
return beta0[0] * np.exp(-(x - beta0[1])**2 / (2 * beta0[2]**2))+ beta0[3]
plt.figure()
plt.plot(Gauss([0.25,50,1.5,0],np.arange(100)))
plt.plot(Gauss([0.25,50,3,0],np.arange(100)))
plt.plot(Gauss([0.25,50,5,0],np.arange(100)))
plt.show()
以防万一,我现在可能不知道要预先绘制哪些数据,所以我想绘制一条线,查看数据,然后用另一条线“更新”图形,依此类推,代码行将被分开:
plt.figure()
Out[11]: <Figure size 1800x1200 with 0 Axes><Figure size 1800x1200 with 0 Axes>
plt.plot(Gauss([0.25,50,1.5,0],np.arange(100)))
Out[12]: [<matplotlib.lines.Line2D at 0x2218c6c06d8>]
plt.plot(Gauss([0.25,50,3,0],np.arange(100)))
Out[13]: [<matplotlib.lines.Line2D at 0x2218c3891d0>]
plt.plot(Gauss([0.25,50,5,0],np.arange(100)))
Out[14]: [<matplotlib.lines.Line2D at 0x2218ba1a438>]
plt.show()
然后我得到 3 个独立的图形,每个图形 1 行,尽管我没有明确打开一个新图形或关闭最后一个图形。
有没有办法阻止 Spyder 为 plt.plot 的每一行打开一个新图形,以给出如图 1 所示的输出?
谢谢你, 勒帕克
我认为这只是你如何运行代码的问题。 如果你逐行运行你所描述的将会发生。 如果您突出显示所有行然后运行,您将得到同一个图中的所有内容。
尝试添加:
%matplotlib inline
plt.figure(figsize=(10, 9))
.### then your code here
这里有一个选项:
plt.plot(
Gauss([0.25,50,1.5,0], np.arange(100)),
Gauss([0.25,50,3,0], np.arange(100)),
Gauss([0.25,50,5,0], np.arange(100))
)
[来源]