pyqtgraph hapus legenda yang ada di pyqt4 gui

Saya ingin memplot beberapa item dalam gui pyQt4 dari pilihan daftar di mana pengguna dapat memilih plot mana yang akan ditampilkan. Mereka dapat melakukan ini sebanyak yang mereka mau. Setiap kali mereka memplot data baru, legenda tetap ada meskipun plotnya tidak. Kode saya adalah:

self.DataPlotter.setLabels(left=("magnitude"),bottom=(str(x_ind)))
title = str(y_ind) + " vs " + str(x_ind)
self.DataPlotter.setTitle(title)
self.DataPlotter.addLegend()

for y,c in zip(y_ind,range(len(y_ind))):
    self.DataPlotter.plot(self.df[x_ind].tolist(),self.df[y].tolist(), name=y, pen=(c,4))

Bagaimana cara menghancurkan legenda lama setiap kali dijalankan?


person laserpython    schedule 14.03.2017    source sumber


Jawaban (1)


Saya menemukan solusinya di sini: https://groups.google.com/forum/#!topic/pyqtgraph/DdWyB1ljQdw

Saya perlu menambahkan ini (tidak yakin apakah coba/kecuali diperlukan):

    try:
        self.legend.scene().removeItem(self.legend)
    except Exception as e:
        print e

Kode terakhir terlihat seperti ini:

        self.DataPlotter.setLabels(left=("magnitude"),bottom=(str(self.x_ind)))
        title = str(self.y_ind) + " vs " + str(self.x_ind)
        self.DataPlotter.setTitle(title)
        try:
            self.legend.scene().removeItem(self.legend)
        except Exception as e:
            print e
        self.legend = self.DataPlotter.addLegend()
        for y,c in zip(y_ind,range(len(y_ind))):
           self.DataPlotter.plot(self.df[x_ind].tolist(),self.df[y].tolist(), name=y, pen=(c,4))
person laserpython    schedule 14.03.2017