Pyqt6—使用 PyQtGraph 简单绘制入门(一)
Pyqt6—使用 PyQtGraph 简单绘制入门 (一)
一、简单介绍
Python的主要优势之一是探索性数据科学和可视化,使用Pandas,numpy,sklearn等工具进行数据分析和matplotlib绘图。使用 PyQt 构建 GUI 应用程序可让您直接从应用程序中访问所有这些 Python 工具,从而允许您构建复杂的数据驱动应用程序和交互式仪表板。
虽然可以在 PyQt 中嵌入绘图,但体验并不完全原生。对于简单且高度交互的绘图,您可能需要考虑改用 PyQtGraph。PyQtGraph建立在Qt的原生之上,提供更好的绘图性能,特别是对于实时数据,并提供交互性和使用Qt图形小部件轻松自定义绘图的能力。
二、环境搭建
-
Pycharm(https://www.jetbrains.com/pycharm)
-
pyqtgraph 软件包
pip install pyqtgraph -
Pycharm中如下所示:
三、QT designer设计布局
1.新建 MainWindow 窗体
2.添加占位符部件
由于 PyQtGraph 绘图小部件没有合适的基类,我们将使用 basic 作为我们的占位符。选择 小部件 从左侧边栏中并将其放在窗口中央。QWidget。给小部件起个名字,“graphWidget”就可以了。这只是一个在代码中引用元素的标记。
接下来选择’提升为‘:
名称命名:
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()
显示如下:
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()
结果如下:
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()
效果如下:
#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')) #线条标记
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
