Spyder 中使用多个单独的 plt.plot 的内联图形

问题描述 投票:0回答:3

我发现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()

运行这个程序可以得到一个包含 3 行数据的漂亮图 3 lines in 1 figure

以防万一,我现在可能不知道要预先绘制哪些数据,所以我想绘制一条线,查看数据,然后用另一条线“更新”图形,依此类推,代码行将被分开:

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 行,尽管我没有明确打开一个新图形或关闭最后一个图形。

3 Figures with one line each

有没有办法阻止 Spyder 为 plt.plot 的每一行打开一个新图形,以给出如图 1 所示的输出?

谢谢你, 勒帕克

python matplotlib plot spyder
3个回答
1
投票

我认为这只是你如何运行代码的问题。 如果你逐行运行你所描述的将会发生。 如果您突出显示所有行然后运行,您将得到同一个图中的所有内容。


0
投票

尝试添加:

%matplotlib inline

plt.figure(figsize=(10, 9))

.### then your code here

0
投票

这里有一个选项:

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))
)

[来源]

© www.soinside.com 2019 - 2024. All rights reserved.