Membenamkan Matplotlib dalam PyQt: Panduan Komprehensif
Pengenalan
Mencipta visualisasi data yang menarik secara visual selalunya penting apabila membina antara muka pengguna. Matplotlib, perpustakaan Python yang popular, menyediakan set alat yang luas untuk mencipta graf dan carta yang pelbagai. Menggabungkan Matplotlib dengan PyQt, pengikatan Qt yang berkuasa untuk Python, membolehkan pembangun membenamkan plot interaktif dengan lancar dalam aplikasi PyQt mereka.
Panduan Langkah demi Langkah
1. Import Widget yang Diperlukan
Untuk membenamkan Matplotlib dalam PyQt, kami perlu mengimport kelas yang berkaitan daripada modul matplotlib.backends dan PyQt4. Khususnya, kami menggunakan FigureCanvasQTAgg sebagai kanvas pelukisan kami dan NavigationToolbar2QT untuk mengawal interaksi graf.
2. Cipta Rajah
Kami mulakan dengan mencipta objek Rajah, yang akan berfungsi sebagai bekas untuk plot kami. Objek ini mengawal keseluruhan reka letak dan sifat graf.
3. Cipta Kanvas
Widget FigureCanvas ialah tempat plot sebenar berlaku. Ia bertindak sebagai jambatan antara Rajah matplotlib dan aplikasi PyQt.
4. Cipta Bar Alat
Widget NavigationToolbar menyediakan kawalan navigasi seperti zum, sorot dan fungsi simpan untuk plot.
5. Tambah Butang
Untuk menunjukkan keupayaan interaktif, kami boleh menambah butang mudah yang mencetuskan fungsi plot apabila diklik.
6. Memplot Data
Di dalam fungsi memplot, kami mencipta subplot, memplot data padanya dan memuat semula kanvas untuk memaparkan graf yang dikemas kini.
Kod Contoh
<code class="python">import sys from PyQt4 import QtGui from matplotlib.backends.backend_qt4agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt4agg import NavigationToolbar2QT as NavigationToolbar from matplotlib.figure import Figure import random class Window(QtGui.QDialog): def __init__(self, parent=None): super(Window, self).__init__(parent) self.figure = Figure() self.canvas = FigureCanvas(self.figure) self.toolbar = NavigationToolbar(self.canvas, self) self.button = QtGui.QPushButton('Plot') self.button.clicked.connect(self.plot) layout = QtGui.QVBoxLayout() layout.addWidget(self.toolbar) layout.addWidget(self.canvas) layout.addWidget(self.button) self.setLayout(layout) def plot(self): data = [random.random() for i in range(10)] ax = self.figure.add_subplot(111) ax.clear() ax.plot(data, '*-') self.canvas.draw() if __name__ == '__main__': app = QtGui.QApplication(sys.argv) main = Window() main.show() sys.exit(app.exec_())</code>
Kod ini menunjukkan cara membuat tetingkap dengan plot matplotlib dibenamkan di dalamnya dan butang yang mencetuskan plot data rawak apabila diklik.
Kesimpulan
Dengan mengikut langkah ini, pembangun boleh menyepadukan plot matplotlib interaktif dengan lancar ke dalam aplikasi PyQt mereka, mewujudkan antara muka pengguna yang menarik yang melibatkan pengguna dengan visualisasi data.
Atas ialah kandungan terperinci Cara Membenamkan Plot Matplotlib dalam PyQt: Panduan Langkah demi Langkah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!