【PyQt5-Qt Designer】在GUI中使用pyqtgraph繪圖庫


pyqtgraph繪圖庫

1.1 簡介:

pyqtgraph是Python平台上一種功能強大的2D/3D繪圖庫,相對於matplotlib庫,由於內部實現方式上,使用了高速計算的numpy信號處理庫以及Qt的GraphicsView框架,

因此,它在大數據量的數字處理和快速顯示方面有着巨大的優勢,它適合於需要快速繪圖更新、視頻或實時交互性的操作場合。

另外,它不僅為各種數據提供了快速可交互式的圖形顯示,同時也提供了用於快速開發應用程序的各種小工具,如屬性樹、流程圖等小部件,在數學、科學和工程領域都有着廣泛的應用。

在PyQt的應用程序中集成圖繪功能,有很多種方案,比如:

  • OpenGL:一個功能強大的二維三維專業圖形繪制工具;

  • Matplotlib:Python中很經典的圖形繪制模塊;

  • PyQtGraph:基於Qt平台,提供交互的數據顯示圖形繪制。

各種圖形繪制方案都有自己的優點,但是論與PyQt程序的融合度,還是當屬PyQtGraph。

pyqtgraph的核心特征是:

  • 基本的2D交互視圖中框繪制

  • 線和散點圖

  • 數據可平移/縮放鼠標

  • 實時數據的顯示和交互的快速繪制

  • 圖像顯示與互動的查找表和電平控制

  • 顯示所有數據類型(int或float;任何比特深度;RGB,RGBA,或亮度)

  • 切片的多維圖像任意角度的函數

  • 快速更新的視頻顯示和實時交互

  • 三維圖形系統(需要Python OpenGL綁定)

  • 體積數據的渲染

  • 三維表面和散點圖

  • 網格的等值面生成渲染

  • 交互式視口旋轉/縮放鼠標

  • 更容易編程的基本的3D場景圖

  • 數據選擇/標記和感興趣的控制區

  • 交互標記垂直/水平的地塊的位置和區域

  • 從圖像中選擇任意區域的部件和自動切片數據匹配

1.2 例子

 PyQtGraph包含一系列可通過運行來訪問的示例:

import pyqtgraph.examples pyqtgraph.examples.run()

二、鼠標交互

大多數使用pyqtgraph數據可視化的應用程序都會生成可交互縮放,平移和使用鼠標配置的小部件。 本節介紹鼠標與這些小部件的交互。

2.1二維圖形

在pyqtgraph中,大多數2D可視化遵循以下鼠標交互:

  •   左鍵:與場景中的項目交互(選擇/移動對象等)。 如果鼠標光標下沒有可移動的物體,那么用左邊的按鈕拖動就會平移場景。
  •   右鍵拖動:縮放場景。 水平拖動左/右縮放; 向上/向下拖動垂直縮放(盡管某些場景將其x / y縮放比例鎖定在一起)。 如果在場景中有x / y軸可以閃動,那么右鍵拖動軸會影響該軸。
  •   右鍵單擊:在大多數情況下單擊右鍵將根據鼠標光標下的對象顯示具有各種選項的上下文菜單。
  •   中間按鈕(或滾輪)拖動:按下滾輪拖動鼠標將始終平移場景(在場景中其他對象阻止左側平移的情況下,此功能非常有用)。
  •   輪旋轉:放大和縮小場景。

對於使用右側或中間按鈕拖動很困難的機器(通常是Mac),存在另一種鼠標交互模式。 在此模式下,用鼠標左鍵拖動可在場景的某個區域上繪制一個框。 按鈕釋放后,場景將縮放並平移以適合框。 可以在上下文菜單中或通過調用以下方式訪問此模式:

pyqtgraph.setConfigOption('leftButtonPan', False)

三、在GUI中集成pyqtgraph圖形

在PyQtGraph中,有幾種繪制圖形的方法:

  • pyqtgraph.plot():創建一個新的繪圖窗口來顯示數據;

  • PlotWidget.plot():將一組新的數據添加到現有的繪圖小部件;

  • PlotItem.plot():將一組新的數據添加到現有的繪圖小部件;

  • GraphicsLayout.addPlot():添加一個新的圖形到一個圖形層中;

根據PyQtGraph這幾種繪圖方式,我們在PyQt中可以在窗口部件中顯示圖形,也可以在一個新的窗口的顯示圖形。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM