matplotlib与pyqt5结合学习笔记

本文记录了matplotlib的面向对象学习,包括关键类的解析,如FigureCanvasBase和RendererBase,以及backend的介绍。重点讨论了matplotlib在PyQT5应用中的使用,强调了Figure、axes和Artist类的作用,解释了渲染器和画布的概念,并提供了官方API链接以供深入研究。
摘要由CSDN通过智能技术生成

关于matplotlib的面向对象学习记录

关于这篇文章:由于编写pyqt5应用需要嵌入figure绘制图像,需要进一步了解matplotlib的构成,故记录如下。

一 、关键的类

在常见的使用中,我们一般使用plt.plot(x,y,‘r.’)或者subplot这类方法隐含的创建了figure,axes这些对象,为了从面向对象角度认识学习matplotlib,我们需要了解清楚各个类的关系和各自作用。

一张图说明各个类的继承关系:
matplotlib类继承关系

如果看到这可能还是不够明白我们关注的重点,再来一张图:
一张我们经常绘制(打交道)的图
思考联系我们日常画画的情景:一张纸(canvas,决定了我们绘制图像的地方)、一支笔(render,负责具体图像的渲染)绘制出图像(artist,我们创建的图像元素,大到figure,小到tick这些都是artist,我们作为“artist”画出来的都是artist)。

所以绘制一幅图,我们关心的重点类如下:
1、backend(介绍见下文,此处以基类为例):
matplotlib.backend_b

要在PyQt5中嵌入Matplotlib图形,可以使用`FigureCanvas`类和`NavigationToolbar`类。以下是一个简单的示例代码: ```python import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget from matplotlib.backends.backend_qt5agg import FigureCanvasQTAgg as FigureCanvas from matplotlib.backends.backend_qt5agg import NavigationToolbar2QT as NavigationToolbar from matplotlib.figure import Figure class MainWindow(QMainWindow): def __init__(self): super().__init__() # 创建一个Matplotlib图形 self.figure = Figure() self.canvas = FigureCanvas(self.figure) # 创建一个导航工具栏 self.toolbar = NavigationToolbar(self.canvas, self) # 创建一个垂直布局,并将图形和工具栏添加进去 layout = QVBoxLayout() layout.addWidget(self.canvas) layout.addWidget(self.toolbar) # 创建一个QWidget作为主窗口的中心部件 widget = QWidget() widget.setLayout(layout) self.setCentralWidget(widget) # 绘制Matplotlib图形 self.plot() def plot(self): # 在Matplotlib图形上绘制一些内容 ax = self.figure.add_subplot(111) ax.plot([1, 2, 3, 4], [1, 4, 9, 16]) ax.set_title('Matplotlib Plot') ax.set_xlabel('X-axis') ax.set_ylabel('Y-axis') self.canvas.draw() if __name__ == '__main__': app = QApplication(sys.argv) mainWindow = MainWindow() mainWindow.show() sys.exit(app.exec_()) ``` 在这个示例中,我们创建了一个`MainWindow`类作为主窗口,并在其中嵌入了一个Matplotlib图形。我们使用`FigureCanvas`类将Matplotlib图形添加到PyQt5窗口中,并使用`NavigationToolbar`类添加一个导航工具栏。然后,我们在`plot`方法中绘制了一个简单的Matplotlib图形。 要运行这个示例,确保你已经安装了PyQt5Matplotlib库,并将以上代码保存在一个Python脚本文件中,然后运行该脚本即可看到嵌入了Matplotlib图形的PyQt5窗口。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值