最新版本的 matplotlib
自动在 graph
下创建导航按钮。然而,我在网上看到的例子都只是展示了如何创建一张图,因此按钮[Next]
和[Previous]
没有用。如何绘制多个图表并使用这些按钮?
例如,我想为 sin()
和 cos()
制作 graph
从 0
度到360
度。
现在我是这样做的:
import scipy
from matplotlib import pyplot
DataRange = range(0, 360)
DataRange = map(scipy.deg2rad, DataRange)
Data1 = map(scipy.sin, DataRange)
Data2 = map(scipy.cos, DataRange)
pyplot.plot(Data1)
pyplot.show() # <--- if I exclude this
pyplot.plot(Data2)
pyplot.show()
将显示 sin()
图。当我关闭窗口时,将显示 cos
图。如果我排除第一个 pyplot.show()
,两者将显示在同一张图中。
如何让它在我按下“下一步”按钮时显示第二个图表?
最佳答案
根据documentation ,Forward
和 Back
按钮用于返回单个图形的上一个 View 。因此,例如,如果您使用了 Zoom-to-rectangle
功能,则 Back
按钮将使您返回到上一个显示。根据您的后端,按下这些按钮时可能会 Hook 。
您显然可以使用 subplot
同时绘制多个图形,如下所示:
import scipy
from matplotlib import pyplot
DataRange = range(0, 360)
DataRange = map(scipy.deg2rad, DataRange)
Data1 = map(scipy.sin, DataRange)
Data2 = map(scipy.cos, DataRange)
pyplot.subplot(211)
pyplot.plot(Data1)
pyplot.subplot(212)
pyplot.plot(Data2)
pyplot.show()
给你:
或者,您可以在点击两个图形时使用以下方法在它们之间切换:
import scipy
from matplotlib import pyplot
DataRange = range(0, 360)
DataRange = map(scipy.deg2rad, DataRange)
Data1 = map(scipy.sin, DataRange)
Data2 = map(scipy.cos, DataRange)
toggle = True
def onclick(event):
global toggle
toggle = not toggle
event.canvas.figure.clear()
if toggle:
event.canvas.figure.gca().plot(Data1)
else:
event.canvas.figure.gca().plot(Data2)
event.canvas.draw()
fig = pyplot.figure()
fig.canvas.mpl_connect('button_press_event', onclick)
pyplot.plot(Data1)
pyplot.show()
关于python - 如何绘制多个图形并使用 [matplotlib] 中的导航按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139496/