嵌入在pyQt4中的Matplotlib:设置轴范围

时间:2015-01-19 22:27:16

标签: python matplotlib pyqt4

对于以下代码设置,轴限制不起作用,我不知道为什么。我也尝试在MyMplCanvas的init中更改轴xlim,也没有设置限制。

class MyMplCanvas(FigureCanvas):
"""modified from https://github.com/matplotlib/matplotlib/blob/master/examples/user_interfaces/embedding_in_qt4.py"""

    def __init__(self, parent=None, width=5, height=4, dpi=100):
        fig = Figure(figsize=(width, height), dpi=dpi)
        self.axes = fig.add_subplot(111)
        self.axes.hold(False)
        self.compute_initial_figure()

        FigureCanvas.__init__(self, fig)
        self.setParent(parent)

        FigureCanvas.setSizePolicy(self,
                               QtGui.QSizePolicy.Expanding,
                               QtGui.QSizePolicy.Expanding)
        FigureCanvas.updateGeometry(self)

    def compute_initial_figure(self):
        pass


class MyStaticMplCanvas(MyMplCanvas):

    def compute_initial_figure(self):
        t = arange(0.0, 3.0, 0.01)
        s = sin(2*pi*t)
        self.axes.set_xlim([0,1])
        self.axes.set_autoscalex_on(False)
        self.axes.plot(t, s)


class ApplicationWindow(QtGui.QMainWindow):
    def __init__(self):
        QtGui.QMainWindow.__init__(self)
        self.main_widget = QtGui.QWidget(self)
        l = QtGui.QVBoxLayout(self.main_widget)
        sc = MyStaticMplCanvas(self.main_widget, width=5, height=4, dpi=100)
        l.addWidget(sc)
        self.main_widget.setFocus()
        self.setCentralWidget(self.main_widget)

qApp = QtGui.QApplication(sys.argv)

aw = ApplicationWindow()
aw.show()
sys.exit(qApp.exec_())

0 个答案:

没有答案