有没有办法修改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.))
我很感激任何建议。
答案 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.))
在它下面的单元格中。