0

キャンバスからいくつかのサブ軸を削除しようとして困っています。問題は、以下のスクリプト例で示されています。

from matplotlib.figure import Figure
from mpl_toolkits.axes_grid.axes_divider import make_axes_locatable
from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas
from PyQt4.QtCore import *
from PyQt4.QtGui import *
import sys

class Test(QWidget):
    def __init__(self):
        QWidget.__init__(self)
        self.resize(1000, 600)  
        self.fig = Figure(figsize=(100,100), dpi=75)  
        axes1 = self.fig.add_subplot(121)
        axes2 = self.fig.add_subplot(122)

        self.subaxes = []
        for ax in [axes1, axes2]:
            divider = make_axes_locatable(ax)
            self.subaxes.append(divider.append_axes("right", "40%", "20%"))

        b = QPushButton("Remove subaxes")
        b.clicked.connect(self.OnBtnClicked)
        l = QHBoxLayout()
        l.addWidget(FigureCanvas(self.fig))
        l.addWidget(b)
        self.setLayout(l)

    def OnBtnClicked(self):
        for sa in self.subaxes:
            self.fig.delaxes(sa)
            del sa
        self.fig.canvas.draw()

app = QApplication(sys.argv)  
win = Test()
win.show()
sys.exit(app.exec_())

メイン ウィンドウは、2 つのメイン軸とその右側に配置された 2 つのサブ軸で構成されています。ウィンドウ内のボタンをクリックすると、予想どおり 2 つのサブ軸が消えますが、元の軸のサイズは変更されません。足りないものはありますか?または、これを達成するためのより良い方法があれば、誰かが私を指摘できますか?

前もって感謝します!

4

0 に答える 0