PyQt5中的Matplotlib:如何去除边缘的小空间

Posted

技术标签:

【中文标题】PyQt5中的Matplotlib:如何去除边缘的小空间【英文标题】:Matplotlib in PyQt5: How to remove the small space along the edge 【发布时间】:2015-02-24 15:52:50 【问题描述】:

我在 PyQt5 widgetQVBoxLayout 中有一个 matplotlib.pyplot 对象。边缘有小空间,真的很烦人。如何删除它?

请参阅下面的屏幕截图。 我已经试过setlayoutSpacing(0),没有效果。

这里是简码(删掉很多数据处理代码):

class MpWidget_SCF(Qt.QWidget):
    def __init__(self, parent=None, y=[]):
        super(MpWidget_SCF, self).__init__()
        self.setParent(parent)

        self.dpi = 50
        self.fig = MpPyplot.figure(figsize=(2, 2), dpi=self.dpi, )
        self.SCF_subplot = MpPyplot.subplot(1, 1, 1)

        self.canvas = MpFigureCanvas(self.fig)
        self.canvas.setParent(self)
        self.SCF_subplot.clear()
        self.SCF_subplot.plot(range(len(y)), y, 'r')
        self.canvas.draw()

        self.vLayout = Qt.QVBoxLayout()
        self.vLayout.addWidget(self.canvas)
        self.vLayout.setSpacing(0)
        self.setLayout(self.vLayout)

class myWidget(Qt.QWidget):
    def __init__(self):
        super(myWidget, self).__init__()
        self.main = Ui_OutputWindow_Form()
        self.main.setupUi(self)

        self.main.SCF_Graphic_Widget = MpWidget_SCF(self)
        self.main.verticalLayout_2.addWidget(self.main.SCF_Graphic_Widget)

        self.show()

【问题讨论】:

【参考方案1】:

您可以删除default margins:

    self.vLayout.setContentsMargins(0, 0, 0, 0)

【讨论】:

以上是关于PyQt5中的Matplotlib:如何去除边缘的小空间的主要内容,如果未能解决你的问题,请参考以下文章

如何去除精巧边缘图像中的长边缘?

如何在 Pyqt5 环境中使用 Pickle 保存 Matplotlib 图?

matplotlib + PyQt5:如何传递参数?

PyQt5 应用程序中的 matplotlib 1.4.0 导致分段错误

PyQt5 中的 Matplotlib 十字准线光标

PyQt5 结合 matplotlib 时,如何显示其 NavigationToolbar