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

标签 python matplotlib

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

例如,我想为 sin()cos() 制作 graph0 度到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(),两者将显示在同一张图中。

如何让它在我按下“下一步”按钮时显示第二个图表?

最佳答案

根据documentationForwardBack 按钮用于返回单个图形的上一个 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()

给你:

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

关于python - 如何绘制多个图形并使用 [matplotlib] 中的导航按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33139496/

相关文章:

python - 无法查看美国各州热图

pandas - 如何删除 Dataframe.plot 中的特定图例标签?

python - 在 NetworkX 中无法将图形保存为 jpg 或 png 文件

python - 使用 matplotlib 直接保存到磁盘

python - 带有类别的 pyplot 条形图

python - pymysql:MySQL 参数化 LIKE 查询

python - 使用Stanfordcorenlp发生PermissionError : [Errno 1] Operation not permitted

python - 类对象的选择性比较

python - 将 RGB 转换为 HLS 并返回

python 子类