Pyqt6—使用 PyQtGraph 简单绘制入门(一)

Pyqt6—使用 PyQtGraph 简单绘制入门 (一)

一、简单介绍

Python的主要优势之一是探索性数据科学和可视化,使用Pandas,numpy,sklearn等工具进行数据分析和matplotlib绘图。使用 PyQt 构建 GUI 应用程序可让您直接从应用程序中访问所有这些 Python 工具,从而允许您构建复杂的数据驱动应用程序和交互式仪表板。

虽然可以在 PyQt 中嵌入绘图,但体验并不完全原生。对于简单且高度交互的绘图,您可能需要考虑改用 PyQtGraph。PyQtGraph建立在Qt的原生之上,提供更好的绘图性能,特别是对于实时数据,并提供交互性和使用Qt图形小部件轻松自定义绘图的能力。

二、环境搭建
  1. Pycharm(https://www.jetbrains.com/pycharm)

  2. pyqtgraph 软件包

    pip install pyqtgraph
    
  3. Pycharm中如下所示:

    image-20230408141330022
三、QT designer设计布局
1.新建 MainWindow 窗体
image-20230408141819124
2.添加占位符部件

由于 PyQtGraph 绘图小部件没有合适的基类,我们将使用 basic 作为我们的占位符。选择 小部件 从左侧边栏中并将其放在窗口中央。QWidget。给小部件起个名字,“graphWidget”就可以了。这只是一个在代码中引用元素的标记。

屏幕截图 2023-04-08 142028

接下来选择’提升为‘:image-20230408142415624

名称命名:image-20230408142548308

3.加载 UI. 文件
四、正式开始
1.基本应用模板
from PyQt6 import QtWidgets, uic
from pyqtgraph import PlotWidget
import pyqtgraph as pg
import sysclass MainWindow(QtWidgets.QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)#Load the UI Pageuic.loadUi('mainwindow.ui', self)def main():app = QtWidgets.QApplication(sys.argv)main = MainWindow()main.show()sys.exit(app.exec())if __name__ == '__main__':main()

显示如下:

image-20230408143415506
2.折线图
from PyQt6 import QtWidgets
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
import sys  # We need sys so that we can pass argv to QApplication
import osclass MainWindow(QtWidgets.QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.graphWidget = pg.PlotWidget()self.setCentralWidget(self.graphWidget)hour = [1,2,3,4,5,6,7,8,9,10]temperature = [30,32,34,32,33,31,29,32,35,45]# plot data: x, y valuesself.graphWidget.plot(hour, temperature)def main():app = QtWidgets.QApplication(sys.argv)main = MainWindow()main.show()sys.exit(app.exec())if __name__ == '__main__':main()

结果如下:image-20230408143850983

3.更改样式——背景颜色
self.graphWidget.setBackground('w')  #更改背景图颜色self.graphWidget.setBackground('#bbccaa')         # hexself.graphWidget.setBackground((100,50,255))      # RGB each 0-255
self.graphWidget.setBackground((100,50,255,25))   # RGBA (A = alpha opacity)self.graphWidget.setBackground((100,50,255))      # RGB each 0-255
self.graphWidget.setBackground((100,50,255,25))   # RGBA (A = alpha opacity)
4.更改样式——线条颜色、宽度和样式
from PyQt6 import QtWidgets
from pyqtgraph import PlotWidget, plot
import pyqtgraph as pg
import sys  # We need sys so that we can pass argv to QApplication
import osclass MainWindow(QtWidgets.QMainWindow):def __init__(self, *args, **kwargs):super(MainWindow, self).__init__(*args, **kwargs)self.graphWidget = pg.PlotWidget()self.setCentralWidget(self.graphWidget)hour = [1,2,3,4,5,6,7,8,9,10]temperature = [30,32,34,32,33,31,29,32,35,45]self.graphWidget.setBackground('w')pen = pg.mkPen(color=(255, 0, 0))self.graphWidget.plot(hour, temperature, pen=pen)def main():app = QtWidgets.QApplication(sys.argv)main = MainWindow()main.show()sys.exit(app.exec())if __name__ == '__main__':main()

效果如下:image-20230408144735074

#QPen 类相关函数
pen = pg.mkPen(color=(255, 0, 0)) #线条颜色pen = pg.mkPen(color=(255, 0, 0), width=15, style=Qt.PenStyle.SolidLine) #线条样式self.graphWidget.plot(hour, temperature, pen=pen, symbol='+', symbolSize=30, symbolBrush=('b'))  #线条标记


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部