6

我一直在将http://goo.gl/J802b0中的代码片段复制粘贴到 ipython 笔记本控制台中,以尝试这些 matplotlib 功能。在我移位输入代码单元后,我得到了滑块和按钮,但没有任何功能。

我正在运行 ipython notebook --pylab inline。

任何建议将不胜感激。

这是一个绘制正弦波并添加下一个和上一个按钮的示例,这些按钮可能会改变轴,但我没有交互性:

from matplotlib.widgets import Button

fig, ax = plt.subplots()
fig.subplots_adjust(bottom=0.2)

t = np.linspace(0, 10, 1000)
line, = plt.plot(t, np.sin(t), lw=2)

class Index:
    dt = 0
    def next(self, event):
        self.dt -= 1
        line.set_ydata(np.sin(t + self.dt))
        fig.canvas.draw()

    def prev(self, event):
        self.dt += 1
        line.set_ydata(np.sin(t + self.dt))
        fig.canvas.draw()

callback = Index()
axprev = plt.axes([0.7, 0.05, 0.1, 0.075])
axnext = plt.axes([0.81, 0.05, 0.1, 0.075])

bnext = Button(axnext, '>')
bnext.on_clicked(callback.next)

bprev = Button(axprev, '<')
bprev.on_clicked(callback.prev)
4

1 回答 1

4

这些图形在网络浏览器中以 png 格式提供,并且没有图像映射(查看笔记本为您提供的内容的来源),因此我认为该功能尚不存在于在线图形中。

如果您使用包含的交互式后端之一(使用您选择的 gui 工具包),该代码应该可以工作。

于 2013-09-22T19:19:04.657 回答