在IPython笔记本中修改线/图“互动”

时间:2015-05-27 15:34:20

标签: python matplotlib plot ipython-notebook interactive

有没有办法修改IPython“互动”功能内的情节,而不是重新绘制它?

如果情节包含大量重型图形(或某些部分需要大量计算),则比从头开始绘制要快得多。

我正在尝试以下代码,但它不起作用:更改滑块后,整个绘图变为空白。

%matplotlib inline
import matplotlib.pyplot as plt
from IPython.html.widgets import interact
import numpy as np

x = np.arange(0,11.)
y1 = x / 10.
y2 = np.random.rand(len(x))

plt.plot(x,y1)
plt.plot(x,y2)

plt.ylim([0,1])
ax = plt.gca()

def replot_it(a):
    ax.lines.pop(1)

    y = (x/10.)**a
    ax.plot(x,y)

interact(replot_it, a=(0.,5.))

我很感激任何建议。

1 个答案:

答案 0 :(得分:1)

如果你有IPython> 3.0和mpl> 1.4:运行这是一个单元格:

%matplotlib notebook
import matplotlib.pyplot as plt
from IPython.html.widgets import interact
import numpy as np

x = np.arange(0,11.)
y1 = x / 10.
y2 = np.random.rand(len(x))
fig, ax = plt.subplots()
ln1, = ax.plot(x,y1)
ln2, = ax.plot(x,y2)

ax.set_ylim([0,1])


def replot_it(a):
    y = (x/10.)**a
    ln2.set_ydata(y)
    ax.figure.canvas.draw()

interact(replot_it, a=(0.,5.))

在它下面的单元格中。