PyQt5 中的 Matplotlib:如何去除沿边的小 space

Matplotlib in PyQt5: How to remove the small space along the edge

我在 PyQt5 widget 中的 QVBoxLayout 中有一个 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()

您可以删除 default margins:

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