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

文章介绍了如何利用PyQt6和PyQtGraph库创建数据驱动的GUI应用程序,重点在于PyQtGraph的高效绘图功能,包括设置环境、使用QTdesigner布局、绘制折线图以及调整图表的样式,如背景颜色和线条属性。
摘要由CSDN通过智能技术生成

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 sys

class MainWindow(QtWidgets.QMainWindow):

    def __init__(self, *args, **kwargs):
        super(MainWindow, self).__init__(*args, **kwargs)

        #Load the UI Page
        uic.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 os

class 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 values
        self.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')         # hex

self.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 os

class 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'))  #线条标记
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值