使用%matplotlib内联的ipython笔记本时如何保持当前的数字?

时间:2015-07-15 21:14:17

标签: python matplotlib ipython-notebook

我找不到答案,所以请让我问这里。

我想在使用%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。]))执行时,前一个plot(plt.plot([1,2,3,6],[4,2,3,4]))被清除。我想绘制一个带有第一个单元格的线条的图形和一个带有第二个单元格的两条线条的图形。

我查了website 它通过

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

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

是否有任何命令不能清除(或保留)上一个情节,例如"抓住"在Matlab?

1 个答案:

答案 0 :(得分:8)

使用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 

产量