如何绘制几个图形并使用[matplotlib]中的导航按钮

时间:2015-10-15 03:43:37

标签: python matplotlib

matplotlib 的最新版本会自动在graph下创建导航按钮。但是,我在互联网上看到的示例都只显示了如何创建一个图表,从而使按钮[Next][Previous]无效。如何绘制多个图形并使用这些按钮?

例如,我想将graphsin()的{​​{1}}从cos()度提升到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,则两者都将显示在同一图中。

如何按下“下一步”按钮时显示第二个图形?

2 个答案:

答案 0 :(得分:8)

根据documentationForwardBack按钮用于返回单个数字的上一个视图。例如,如果您使用Zoom-to-rectangle功能,Back按钮会返回上一个显示。根据您的后端,按下这些按钮时可能会挂钩。

您可以使用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()

给你:

enter image description here

或者,您可以使用以下内容在单击两个数字之间切换:

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()

答案 1 :(得分:1)

这些上一个/下一个按钮不适用于浏览不同的情节;它们允许观看者使用平移/缩放和缩放矩形在其选择的“视图”中导航。从这个意义上说,“ home”只是多次按下“ previous”的快捷方式。