Python數據可視化之高速繪圖神器PyQtGraph庫,強烈建議收藏

2021-01-11 編碼那些事

01為什麼使用PyQtGraph庫

我們知道,在Python中,已經有了很多可供選擇的數據可視化庫。

比如最經典、使用人數最多的matplotlib庫,其有著十多年的歷史積累,可生成高質量出版級別的圖形,它幾乎已經成了事實上的Python繪圖標準庫。再比如在matplotlib庫基礎上衍生的其它繪圖庫,如seaborn、ggplot、plotnine等等,甚至還有其它的一些庫如底層使用JavaScript 實現的開源可視化庫pyecharts等,這些庫都比較容易使用,幾行代碼就可畫出來漂亮的圖形。

但是這些繪圖庫也存在著不足,即在圖形繪製速度上有所欠缺,特別是對於科研算法方面的數據可視化,很多情況需要實時繪圖,要求能夠提供儘可能快的繪製刷新速度,那這些庫顯的有些力不從心了。

而我們下面要介紹的繪圖庫-PyQtGraph庫,則在繪圖速度方面表現尤其突出,在不失繪圖美觀、功能強大的前提下,在繪圖速度方面作了極大的優化,特別適合於實時數據採集的動態圖形繪製場合。

02什麼是PyQtGraph庫

先上個2D繪製效果圖:

再來個3D繪製效果圖:

PyQtGraph是一個純python的圖形和GUI庫,構建於PyQt4/PySide和numpy之上,它主要用於數學/科學/工程應用方面。雖然該庫完全用python編寫,但其內部使用了Qt的GraphicsView框架及numpy計算庫,因此其在圖形繪製及數據處理速度方面有著極其優異的表現。同時,PyQtGraph是在MIT開源許可下發布的。

該庫可運行於Python2和Python3上,其兩個主要特色為:

為數據(繪圖,視頻等)提供了快速可交互式的圖形(2D和3D)顯示。提供了幫助快速開發應用程式的小工具/部件,如屬性樹、顏色選擇框按鈕等。大家有興趣可去官網看下。

03PyQtGraph庫的主要特點

這兒僅列舉部分功能,詳細的可直接查看官方文檔。

1、可交互式的2D/3D繪圖功能

折線圖、散點圖、三維曲面基於等值面生成的網格繪製豐富的屬性設置支持顯示大多數數據類型(int或float;任意位深度;RGB、RGBA或亮度)在任意角度對多維圖像進行切片的功能(非常適合MRI數據)交互式滑鼠平移/旋轉/縮放實時數據顯示與交互的快速繪圖2、數據選擇/標記和關注區域控制

在繪圖中可交互標記垂直/水平位置和區域在圖像中可選擇任意區域並自動切片數據以匹配的小部件3、科學/工程應用程式有用的小部件和模塊庫

參數樹、顏色漸變編輯器及帶SI單位顯示和對數步進的SpinBox小部件等類似於Qt的Dock系統,但更加靈活和可編程,允許用戶重新排列圖形用戶界面組件怎麼樣,這裡面有沒有你感興趣的呢?心動了麼?

04PyQtGraph庫的安裝

以Windows系統為例,對於Python2或Python3,以下兩種方法都可以安裝:

pip命令行安裝:pip install pyqtgraph官網下載exe程序安裝:32位和64位的分別為pyqtgraph-0.10.0.win32.exe,pyqtgraph-0.10.0.win-amd64.exe文件

05PyQtGraph庫的使用

PyQtGraph庫提供了如下幾種使用方式:

在交互式shell如ipython裡顯示數據在應用程式中直接彈出彈出窗口顯示數據以小部件窗口的方式嵌入到在PyQt應用程式中顯示數據下面是一個超簡單直接彈出窗口的例子,代碼如下:

運行結果如下圖所示:

是不是比較簡單啊。

另外,這個庫比較好的地方是自帶了很多很多的例子,如果你想看更多更複雜的效果,就從它的例子開始學習吧,打開例子的方法只需要下面兩行代碼:

import pyqtgraph.examples

pyqtgraph.examples.run()

例子界面如下圖所示,每一個都可以單獨運行:

GraphicsView框架及numpy計算庫的有機結合,造就了PyQtGraph庫的高速繪製性能,小夥伴們,快試下吧。

本文由編碼那些事原創,請關注+轉發+收藏+點讚,帶你一起長知識!

相關焦點

  • Python語言中使用pyqtgraph庫實現數據可視化
    背景在Python程式語言中,matplotlib是一種常用的用於數據可視化的繪圖庫,它提供了一套和matlab相似的命令API,開發者可以僅需幾行代碼,便可生成如直方圖,功率譜,條形圖,錯誤圖,散點圖等圖形,適用於交互式繪圖,而且也可以方便地將它作為繪圖控制項嵌入到GUI應用程式中
  • Python使用ctypes模塊調用DLL函數之C語言數組與numpy數組傳遞
    詳細細節請參考:python使用ctypes模塊調用DLL函數之傳遞數值、指針與字符串參數、Python使用ctypes模塊調用DLL函數之傳遞結構體參數這次講一下在Python中使用ctypes模塊調用DLL中的庫函數傳遞數組參數的情況。
  • Python可視化Seaborn庫詳解——繪圖方法
    在《Python可視化Seaborn庫詳解——繪圖設置》一文中,我們介紹了Seaborn庫的繪圖參數設置,本文我們將介紹具體的繪圖方法。其實雖然Seaborn庫看著繪圖函數多,但有幾個函數的泛化性非常強,通過參數的設置是可以繪出多種圖形的。為了便於掌握這些函數,本文會對這些方法進行歸納整理,力爭做到提綱挈領的目的。
  • 超硬核的 Python 數據可視化教程!
    Python實現可視化的三個步驟:確定問題,選擇圖形 轉換數據,應用函數 參數設置,一目了然 1、首先,要知道我們用哪些庫來畫圖?matplotlibpython中最基本的作圖庫就是matplotlib,是一個最基礎的Python可視化庫,一般都是從matplotlib上手Python數據可視化,然後開始做縱向與橫向拓展。
  • 可視化工具不知道怎麼選?深度評測5大Python數據可視化工具
    作者 | 劉早起來源 | 早起Python(ID: zaoqi-python)相信很多讀者學習Python就是希望作出各種酷炫的可視化圖表,當然你一定會聽說過Matplotlib、Pyecharts、Seaborn、Plotly、Bokeh這五大工具,本文就將通過真實繪圖來深度評測這五個Python數據可視化的庫,看看到底這幾種工具各有什麼優缺點
  • 這幾個常用的python庫你需要知道
    python可以說是近幾年最火熱、最實用的、最容易上手的工具之一了。功能強大、應用廣泛,可以幫你搜集工作數據,還能幫你下載音樂,電影,於是就掀起了一波學習python的大潮,小編也毫不猶豫的加入了。但是對於向小編一樣的小白來說,剛開始學習還是有些困難的,需要首先了解python的一些基礎知識。所以小編就整理了一些常用的python庫,希望對正在學習python的小夥伴有所幫助。1.MatplotlibMatplotlib是一個用於創建二維圖和圖形的底層庫。
  • 數據工程師需要掌握的 18 個 Python 庫
    所以使用 pip install Twisted-18.9.0-cp37-cp37m-win32.whl 來安裝,然後使用pip install scrapy 來安裝scrapy就可以了數據獲取Beautiful SoupBeautiful Soup也是一個從網站爬取數據的庫,他提供一些簡單的、python式的函數用來處理導航、搜索、修改分析樹等功能。
  • 強烈推薦一款Python可視化神器!強烈必備!
    受 Seaborn 和 ggplot2 的啟發,它專門設計為具有簡潔,一致且易於學習的 API :只需一次導入,您就可以在一個函數調用中創建豐富的交互式繪圖,包括分面繪圖(faceting)、地圖、動畫和趨勢線。 它帶有數據集、顏色面板和主題,就像 Plotly.py 一樣。
  • 使用biopython可視化染色體和基因元件
    在biopython中,通過BiolGraphics子模塊可以對基因組結構進行可視化,支持線性和圈圖兩種可視化方式。 以下列數據為例,先來看下可視化的用法 >https://www.ncbi.nlm.nih.gov/nuccore/NC_005816 首先是讀取gb文件,代碼如下 接下來提取gb文件中的feature信息,構建用於繪圖的數據結構,代碼如下
  • matplotlib的Python數據可視化和探索——入門指南
    matplotlib——最受歡迎的Python庫,用於數據可視化和探索我喜歡在Python中使用matplotlib。這是我學會掌握的第一個可視化庫,此後一直存在。matplotlib是最受歡迎的用於數據可視化和探索的Python庫,這是有原因的——它提供的靈活性和敏捷性是無與倫比的!
  • 如何在Python中創建交互式可視化?(建議收藏)
    如何在Python中創建交互式可視化。在探索添加更多交互控制項之前,我們將僅以不同格式繪製數據開始。如果您一直關注我一段時間,會注意到這是數據可視化系列文章中的第三篇。首先使用默認的python可視化庫matplotlib引入了數據可視化。然後,我們學習了如何使用相同的庫在時間序列上創建動畫可視化效果。
  • 如何構建一個基於可視化理論的完美Python圖表?
    想要確保每個人都能理解使用默認繪圖功能所犯的一些嚴重錯誤。2. 將Plotly介紹給這些受眾,使用數據並通過探究人工智慧和數據領域的文章來進行自我提升。3. 涵蓋可視化理論的基礎知識,以及足以使在擁擠數字領域中的工作吸引從業者眼球的先進技術。本文包含的代碼是對我的教程plot.py的摘錄,我將對其進行擴展使得3d繪圖,動畫等的最佳實踐也包含進來。
  • 學習筆記,從NumPy到Scrapy,學習Python不能錯過這些庫
    在網絡上看到幾位前輩寫了關於python深度學習庫的文章,對於小小白來說,因為我剛開始學python,我得承認自己看完後依然覺得雲裡霧裡的,不知道這些庫到底對我有什麼用處。所以我到網絡上搜集補充關於這些庫的說明內容,感覺在這個整理資料的過程中,對於這些python程序庫了解了更多,以下是我整理的學習筆記。
  • python的繪圖利器--海龜繪圖turtle
    我們之前提到Python是一種超級語言,因為其提供了極其豐富的庫,需要什麼拿來黏合一下就可以直接使用。就像現在的有些汽車工廠一樣,根本不用重新發明生產什麼,只需要買來相應部件等把它們組裝起來就好。作為你學習python的第一個程序,樹哥決定直接來一個實戰乾貨程序:利用海龜turtle來畫一個奧運五環。這樣就既可以理解庫的概念和使用,又可以理解程序的基本概念。
  • Python可視化工具推薦:圖片交互性行極佳的Plotly
    1、 簡單介紹一般大家在學習python機器學習的時候,用的最多的可視化的包就是matplot和seaborn, 這2個可視化的優點在於門檻低,代碼容易理解,並且容易上手。但是對於plotly來說的話,我們直接可以用python來寫,並且代碼量比java的少很多,我們可以直接將我們熟悉的python list, numpy, pandas放進去就可以畫圖,並且給出的效果和echart的圖一摸一樣。另外要提一點的是python plotly也是可以用來做動圖的,我們後面會給大家介紹一種用plolty做出來的用於展示Kmeans算法過程的動圖。
  • 2019年必知的10大頂級Python庫
    它是一個與 NumPy 和 SciPy 相關聯的 python 庫。它被認為是處理複雜數據的最佳庫之一。在這個庫中進行了許多修改。其中一個修改是交叉驗證特性,它提供了使用多個度量的能力。許多訓練方法,如物流回歸和最鄰近算法,都沒有得到什麼改善。
  • 掌握了這24個頂級Python庫,你就是大神!
    因此,本文介紹了24種涵蓋端到端數據科學生命周期的Python庫。文中提及了用於數據清理、數據操作、可視化、構建模型甚至模型部署(以及其他用途)的庫。這是一個相當全面的列表,有助於你使用Python開啟數據科學之旅。
  • 一文總結數據科學家常用的Python庫(下)
    /* Scikit-learn */就像用於數據操作的Pandas和用於可視化的matplotlib一樣,scikit-learn是構建模型的Python庫領導者。沒有什麼比得上它了。事實上,scikit-learn建立在NumPy,SciPy和matplotlib之上。它是開源的,每個人都可以訪問,並且可以在各種環境中重用。
  • 使用Plotly創建帶有回歸趨勢線的時間序列可視化圖表數據
    最後,作為DataFrame準備的最後一步,通過「計數」將數據分組——我們在處理Plotly之後會回到這個問題上。  在所有的圖形庫中,Plotly是可視化效果最好的了,但是他也存在一些問題。好的一方面是,Plotly能夠產生出色的可視化效果,並與HTML集成。從不好的是,在單圖和混合圖之間切換時,語法可能會非常混亂。
  • 使用Matplotlib可視化數據的5個強大技巧
    數據可視化用於以更直接的表示方式顯示數據,並且更易於理解。它可以用柱狀圖、散點圖、折線圖、餅圖等形式形成。許多人仍然使用Matplotlib作為後端模塊來可視化他們的圖形。在這個故事中,我將給你一些技巧,使用Matplotlib創建一個優秀圖表的5個強大技巧。1.