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()
2、鼠標交互
大多數使用pyqtgraph數據可視化的應用程序都會生成可交互縮放,平移和使用鼠標配置的小部件。 本節介紹鼠標與這些小部件的交互。框架
2.1二維圖形
在pyqtgraph中,大多數2D可視化遵循如下鼠標交互:函數
- 左鍵:與場景中的項目交互(選擇/移動對象等)。 若是鼠標光標下沒有可移動的物體,那麼用左邊的按鈕拖動就會平移場景。
- 右鍵拖動:縮放場景。 水平拖動左/右縮放; 向上/向下拖動垂直縮放(儘管某些場景將其x / y縮放比例鎖定在一塊兒)。 若是在場景中有x / y軸能夠閃動,那麼右鍵拖動軸會影響該軸。
- 右鍵單擊:在大多數狀況下單擊右鍵將根據鼠標光標下的對象顯示具備各類選項的上下文菜單。
- 中間按鈕(或滾輪)拖動:按下滾輪拖動鼠標將始終平移場景(在場景中其餘對象阻止左側平移的狀況下,此功能很是有用)。
- 輪旋轉:放大和縮小場景。
對於使用右側或中間按鈕拖動很困難的機器(一般是Mac),存在另外一種鼠標交互模式。 在此模式下,用鼠標左鍵拖動可在場景的某個區域上繪製一個框。 按鈕釋放後,場景將縮放並平移以適合框。 能夠在上下文菜單中或經過調用如下方式訪問此模式:工具
pyqtgraph.setConfigOption('leftButtonPan', False)
3、在GUI中集成pyqtgraph圖形
在PyQtGraph中,有幾種繪製圖形的方法:大數據
-
pyqtgraph.plot():建立一個新的繪圖窗口來顯示數據;
-
PlotWidget.plot():將一組新的數據添加到現有的繪圖小部件;
-
PlotItem.plot():將一組新的數據添加到現有的繪圖小部件;
-
GraphicsLayout.addPlot():添加一個新的圖形到一個圖形層中;
根據PyQtGraph這幾種繪圖方式,咱們在PyQt中能夠在窗口部件中顯示圖形,也能夠在一個新的窗口的顯示圖形。spa