使用带有 %matplotlib inline 的 ipython notebook 时如何保持当前图形?

How to keep the current figure when using ipython notebook with %matplotlib inline?

我找不到这个问题的答案,所以请让我在这里提问。

我想在使用 %matplotlib inline 时将当前数字保留在 ipython 笔记本中。这可能吗?

例如,我想在图表中绘制 2 条线

plt.plot([1,2,3,6],[4,2,3,4])

plt.plot([3.3, 4.4, 4.5, 6.5], [3., 5., 6., 7.])

如果我将这两个命令行放在一个单元格中就可以了。该图显示两条线。但是,如果我将它们分别放入两个单元格中,当第二个单元格 (plt.plot([3.3, 4.4, 4.5, 6.5], [3., 5., 6., 7.])) 被执行时,先前的情节 (plt.plot([1,2,3,6],[4,2,3,4])) 被清除。我想用第一个单元格的线绘制一个图,第二个单元格用两条线绘制一个图。

我查了 website 它通过

明确地清除了情节
plt.cla()  # clear existing plot

但这有点令人困惑,因为无论如何它都会自动清除。

有没有像Matlab中的"hold on"一样不清除(或保留)之前的绘图的命令?

使用 ax.plot 而不是 plt.plot 以确保您两次都绘制到相同的轴上。使用 fig(在第二个单元格中)显示绘图。

在单元格 1 中:

%matplotlib inline
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
ax.plot([1,2,3,6],[4,2,3,4])

在单元格 2 中:

ax.plot([3.3, 4.4, 4.5, 6.5], [3., 5., 6., 7.])
fig 

产量