按钮

构建一个简单的按钮GUI来修改正弦波。

下一个上一个按钮小部件有助于以新频率显示波形。

按钮示例

  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. from matplotlib.widgets import Button
  4. freqs = np.arange(2, 20, 3)
  5. fig, ax = plt.subplots()
  6. plt.subplots_adjust(bottom=0.2)
  7. t = np.arange(0.0, 1.0, 0.001)
  8. s = np.sin(2*np.pi*freqs[0]*t)
  9. l, = plt.plot(t, s, lw=2)
  10. class Index(object):
  11. ind = 0
  12. def next(self, event):
  13. self.ind += 1
  14. i = self.ind % len(freqs)
  15. ydata = np.sin(2*np.pi*freqs[i]*t)
  16. l.set_ydata(ydata)
  17. plt.draw()
  18. def prev(self, event):
  19. self.ind -= 1
  20. i = self.ind % len(freqs)
  21. ydata = np.sin(2*np.pi*freqs[i]*t)
  22. l.set_ydata(ydata)
  23. plt.draw()
  24. callback = Index()
  25. axprev = plt.axes([0.7, 0.05, 0.1, 0.075])
  26. axnext = plt.axes([0.81, 0.05, 0.1, 0.075])
  27. bnext = Button(axnext, 'Next')
  28. bnext.on_clicked(callback.next)
  29. bprev = Button(axprev, 'Previous')
  30. bprev.on_clicked(callback.prev)
  31. plt.show()

下载这个示例