Matplotlib NavigationToolbar2QT 仅显示禁用的左右箭头。如何显示缩放和平移按钮?

Posted

技术标签:

【中文标题】Matplotlib NavigationToolbar2QT 仅显示禁用的左右箭头。如何显示缩放和平移按钮?【英文标题】:Matplotlib NavigationToolbar2QT shows only disabled left and right arrows. How to display Zoom and Pan buttons? 【发布时间】:2020-01-25 19:56:31 【问题描述】:

我正在使用 matplotlib 和 PySide2(但我是新手)来绘制嵌入在 QWidget 中的图表。我希望图表有一个带有缩放和平移按钮的 NavigationToolbar2QT。但我只在 NavigationToolBar 中禁用了左右箭头按钮。以下是我的代码的相关部分:

from PySide2.QtWidgets import QWidget, QVBoxLayout
from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar


class ChartWidget(QWidget):
    def __init__(self, algo_index, *args, **kwargs):
        QWidget.__init__(self, *args, **kwargs)
        self.setLayout(QVBoxLayout())
        self.canvas = AlgoCanvas.get_plot_canvas(algo_index, self)
        self.toolbar = NavigationToolbar(self.canvas, self)
        self.layout().addWidget(self.toolbar)
        self.layout().addWidget(self.canvas)

这是我得到的结果:

如何才能在 NavigationToolbar2QT 上获得缩放和平移按钮?任何帮助将不胜感激?

提前致谢。

【问题讨论】:

@eyllanesc 我认为我的示例是最小且可重复的(根据您提供的链接)。您能否详细说明您认为其中缺少什么? 您的代码很少但不可重现。 MRE的逻辑是其他用户可以通过复制粘贴来重现你的问题,显然有很多代码没有定义为“something_index”、“AlgoCanvas” 我想按钮在那里,只是不可见,因为黑色背景上的黑色按钮使一切变黑。 例如,使用the official matplotlib example for Qt中的代码+您的不完整代码,我得到以下内容:i.imgur.com/BxRRurT.png @ImportanceOfBeingErnest 是的!这就是问题所在。按钮被黑色背景隐藏。感谢 v.much 的指针 【参考方案1】:

解决了!按钮在那里,但由于黑色背景而不可见。

感谢 v.much @ImportanceOfBeingEarnest 提供指针。

【讨论】:

以上是关于Matplotlib NavigationToolbar2QT 仅显示禁用的左右箭头。如何显示缩放和平移按钮?的主要内容,如果未能解决你的问题,请参考以下文章

Matplotlib 基本概念

Matplotlib快速入门

matplotlib绘图入门详解

matplotlib 绘图常用函数

Matplotlib 教程

安装matplotlib?