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

絢瀬絵*_*瀬絵里 15 python matplotlib

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

例如,我想使graphsin()cos()0360程度.

现在我这样做:

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()
Run Code Online (Sandbox Code Playgroud)

sin()将显示该图表.当我关闭窗口时,cos将显示图表.如果我排除第一个pyplot.show(),则两个都将显示在同一图中.

当我按下"下一步"按钮时如何显示第二个图表?

Mar*_*ans 12

根据文档,使用ForwardBack按钮可以返回到单个图形的先前视图.因此,例如,如果您使用该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()
Run Code Online (Sandbox Code Playgroud)

给你:

在此输入图像描述

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

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()
Run Code Online (Sandbox Code Playgroud)


Rub*_*Rad 7

那些上一个/下一个按钮不是用于浏览不同的图;它们允许查看者通过平移/缩放和缩放矩形选择的“视图”进行导航。从这个意义上说,“家”只是多次按下“上一个”的快捷方式。