
什么是pyqtgraph?
pyqtgraph是qtgraph支持python編程的套件 , 提供了一套基于pyqt的數據可視化分析的解決方案 。包含折線圖、柱狀圖、顏色圖等等多種簡易的實現可視化圖表GUI編程的接口 。
如何安裝開發環境?
我通常安裝python環境使用Anaconda套件進行安裝 , 建議安裝3.8以下的python版本 。3.9和3.10版本暫時不支持pyqtgraph的套件 。安裝步驟如下:
下載Anaconda
我下載的是Anaconda3.5.1 , 自動安裝python3.7版本 。官方下載路徑:https://repo.anaconda.com/archive/Anaconda3-5.3.1-Windows-x86_64.exe
安裝python環境安裝Anaconda python套件 , 一路安裝下去就可以了 。安裝完之后命令行輸入python -V , 回車 , 輸出:Python 3.7.0 , 表示python環境已經安裝好了 。命令行輸入conda install pyqtgraph , 等待安裝完成 , pyqtgraph就安裝好了 。驗證pyqtgraph是否成功安裝 。新建文件main.py , 輸入import pyqtgraph as pg , 保存關閉文件 。命令行輸入python main.py執行 , 如果沒有報錯表示安裝成功了 。什么是折線圖?
折線圖是由一個直角坐標系(也叫笛卡爾坐標系)、線、點組成的統計圖表 。通常用來表示一段數據(時間、變化)之內的一組或者多組數據的趨勢 。
圖1 一組數據查看增加人數的趨勢
【堆積折線圖和折線圖 堆積折線圖】圖2 兩組或多組數據查看數據趨勢和對比情況
折線圖的適用場景和不適用場景適用場景一組數據隨另外一組有序的數據變化多組數據隨一組有序的數據變化不適用的場景有序數據通常放在X軸 , 如果X軸數據過多 , 使用折線圖導致折線堆疊 , 導致數據變化趨勢堆積 。數據樣本過多 , 數據組太多導致折線堆疊 , 難以聚焦重點 。數據組中的數據 , 大多數的值為0 , 折線圖會出現很多三角形數據 。用pyqtgraph簡單實現折線圖
創建main.py , 在文件中輸入下面的代碼 。直接上代碼吧 , 相信想要了解的人都可以看得懂 , 有疑問的同學也可以交流 。
import os
import sys
import numpy as np
import pyqtgraph as pg
from pyqtgraph.Qt import QtCore
from PyQt5.QtWidgets import QWidget, QApplication
# 定義Qt的ui處理類
class Ui_MainWindow(object):
def setupUi(self, MainWindow):
MainWindow.setObjectName("MainWindow")
MainWindow.resize(600, 400)
self.retranslateUi(MainWindow)
QtCore.QMetaObject.connectSlotsByName(MainWindow)
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "pyqtgraph example"))
# 定義UI的邏輯類
class MainWindow(QWidget, Ui_MainWindow):
def __init__(self, parent=None):
super().__init__(parent)
self.setupUi(self)
self.setStyleSheet("background-color:rgb(255,255,255)")
self.showLineChart()
# 處理折線圖的函數
def showLineChart(self):
# 創建一個GraphicsWidget
win = pg.GraphicsLayoutWidget(self, show=True)
# 設置widget大小
win.resize(600, 400)
# 創建畫筆
chartPen = pg.mkPen(color=(107,200,224), width=2)
# 創建一個坐標系畫板
plot = win.addPlot(title="隨機數據對比")
# 加入隨機的點數據
plot.plot(y=np.random.normal(size=20), pen = chartPen, title="隨機數據1")
plot.plot(y=np.random.normal(size=20)+5, pen = chartPen, title="隨機數據2", symbolPen='w')
推薦閱讀
- 初語旗艦店和初語折扣店 初語旗艦店
- 翡翠密度3.33折射率1.66什么意思
- 紙箱怎么折疊封底
- 內褲怎么折疊
- 藏紅花老年人可以喝嗎 沒有出血骨折的情況下是合適的
- 切好的水果能放多久 水果切好隔夜營養會打折扣嗎?切好能放多久?
- 早上起床疊被子好嗎 晨起不要急折被!維持通風保健康
- 折耳根的味道
- 工兵折疊戶外鏟有哪些特點
- 玩兒極限自行車導致骨折怎么辦
