Python語言使用pyqtgraph庫實現數據可視化之自定義坐標軸信息

2020-12-21 編碼那些事

引言

pyqtgraph是Python平臺上一種功能強大的2D/3D繪圖庫,相對於matplotlib庫,由於內部實現方式上,使用了高速計算的numpy信號處理庫以及Qt的GraphicsView框架,因此,它在大數據量的數字處理和快速顯示方面有著巨大的優勢,它適合於需要快速繪圖更新、視頻或實時交互性的操作場合。另外,它不僅為各種數據提供了快速可交互式的圖形顯示,同時也提供了用於快速開發應用程式的各種小工具,如屬性樹、流程圖等小部件,在數學、科學和工程領域都有著廣泛的應用。

目的

在畫二維數據波形圖時,有時在橫坐標刻度信息上顯示的是一些說明性的字符信息,而非原始的橫坐標數值,如下圖所示:

圖中顯示的橫、縱坐標的實際值分別為[[0,1,2,3,4,5],[1,2,6,3,5,2]],而在圖形的橫坐標軸刻度上顯示的是字符信息[『a』,『b』,『c』,『d』,『e』,『f』],這些字符分別對應了數值[0,1,2,3,4,5]。這兒介紹Python語言中使用pyqtgraph庫實現這種功能的兩種方法。

方法1

其原則是,直接使用pyqtgraph庫提供的軸項類AxisItem,定義它的一個實例對象,調用該類的setTicks函數設置橫坐標軸的字符信息,代碼如下:

代碼簡要說明如下:

第14-16行,產生波形的x、y數據及對應的x軸的字符信息列表第20行,將x數值及字對應字符組成一個元組的列表第25-26行,創建軸項類AxisItem的實例對象strAxis,並調用setTicks函數設置橫坐標的字符信息第29-30行,使用strAxis創建繪圖對象並繪製波形圖

方法2

其原則是,以pyqtgraph庫提供的軸項類AxisItem作為基類,在程序中創建一個自定義的軸項類,類中重定義函數tickStrings來實現橫坐標刻度的的字符信息顯示,代碼如下:

代碼簡要說明如下:

第13-29行,以pyqtgraph庫提供的AxisItem作為基類自定義了一個軸項類MyStringAxis,在類中重定義tickStrings函數,實現橫坐標刻度的的字符信息顯示第33-35行,產生波形的x、y數據及對應的x軸的字符信息列表第39行,將x數值及字對應字符組成一個元組的列表第42-44行,創建自定義類MyStringAxis的實例對象strAxis,用其創建繪圖對象並繪製波形圖

歡迎加關注,共同交流。

相關焦點

  • 《數據可視化基礎》第二章:坐標軸
    進行數據可視化的第一步是來定義數據的位置,也就是位置標度(position scales)。位置標度決定了我們的數據在圖片中的位置,對於一個常規的2D圖形而言,我們需要兩個變量來定義一個點,這個也就是我們經常說到的X軸和Y軸。有了兩個位置標度之後,我們還需要制定這兩個標度的相對位置。常規來說X軸和Y軸是垂直的,但是也有其他的,比如說Y軸相對於X軸是銳角的。
  • 數據可視化系列:那些被你忽略的坐標軸設計細節
    坐標系是能夠使每個數組在維度空間內找到映射關係的定位系統,更偏向數學/物理概念。在數據可視化中,最常用的坐標西分為笛卡爾坐標系和極坐標系,本文介紹的坐標軸設計主要也是圍繞直角坐標系展開,enjoy~什麼是坐標軸在說坐標軸之前先來介紹下什麼是坐標系。
  • Material Design設計語言-數據可視化
    一、原則數據可視化,是將數據信息以直觀的圖標、圖形展示出來的一種表現形式。旨在讓用戶更容易看懂和理解數據,以及傳達的信息更明確。因為這能夠讓用戶快速分析,並迅速做出判斷和決策。數據可視化可以表達不同類型和大小的數據:從幾個數據點到大型多變量數據集。1. 準確優先考慮數據的準確性、清晰度和完整性,以不會扭曲信息的方式呈現信息2.
  • 那些讓人驚豔的Python庫
    xlwings–一個使得在Excel中方便調用Python的庫(反之亦然),基於BSD協議。xlwt/xlrd–讀寫Excel文件的數據和格式信息。relatorio–模板化OpenDocument文件。自然語言處理用來處理人類語言的庫。
  • 38個常用Python庫:數值計算、可視化、機器學習等8大領域都有了
    SciPy在NumPy庫的基礎上增加了眾多的數學、科學及工程計算中常用的庫函數,如線性代數、常微分方程數值求解、信號處理、圖像處理、稀疏矩陣等,可進行插值處理、信號濾波,以及使用C語言加速計算。3. Pandas基於NumPy的一種工具,為解決數據分析任務而生。
  • 數據可視化最有價值的50個圖表 | 網際網路數據資訊網-199IT | 中文...
    在數據分析和可視化中最有用的 50 個 Matplotlib 圖表。 這些圖表列表允許您使用 python 的 matplotlib 和 seaborn 庫選擇要顯示的可視化對象。這些圖表根據可視化目標的7個不同情景進行分組。 例如,如果要想像兩個變量之間的關係,請查看「關聯」部分下的圖表。
  • GraphQL|一種配得上凡爾賽的API框架
    >4、GraphQL 使用類型來保證應用只請求可能的數據,還提供了清晰的輔助性錯誤信息。那麼我們如何在flask應用中使用graphql,來同時進行應用構建和API測試呢?下面給出一個使用flask-graphql的示例。使用flask構建的基礎應用和前面的應用是一樣的,不同之處在於,這次我們加上了graphql測試的功能,具體涉及到兩個包:flask_graphql及graphene。
  • 【全能地圖】平面2D地圖可視化終極武器,任意自定義地圖數據包極致化
    在過往推出的一系列地圖數據包製作教程中,已經將常用的地圖數據包採集加工做了非常詳盡的工具輸出及技能傳授。為了完結自我的一個更進階追求,繼續前行,有了本篇的終極自定義地圖製作篇。功能實現詳細的操作過程,將在後續推文中,以視頻的方式給大家全面展示,藉助Excel催化劑+local space viewer(免費綠色免安裝,以下簡稱LSV)。打造出非同尋常的自定義製作效果。一、百度、高德、谷歌、GPS坐標系互轉一網打盡不同地圖來源中,存在地圖編碼不一致問題,此輪Excel催化劑將無死角地給予全面支持。
  • 從系統和代碼實現角度解析TensorFlow的內部實現原理 | 深度
    Tensroflow/python目錄是python API客戶端腳本。Tensorflow/tensorboard目錄是可視化分析工具,不僅可以模型可視化,還可以監控模型參數變化。third_party目錄是TF第三方依賴庫。
  • 「可視化」的數據分析落伍了?
    作為一名程式設計師兼職業餘空間數據分析師,空間數據的處理一直是一抹揮之不去的烏雲。雖然GIS軟體可視化的操作界面、包羅萬象的功能,已經能解決日常工作中幾乎所有問題,但對於身為程式設計師的我來說,一切不能用鍵盤上26個字母解決的問題,都是不科學的~所以這些年我一直致力於思考一個問題,如何把Arcgis的功能,用代碼的方式實現。
  • 三種可視化方法,手把手教你用R繪製地圖網絡圖!
    下面這篇博客將使用R中的igraph、ggplot2或ggraph包來介紹三種在地圖上可視化網絡圖的方法。在對地理位置以及位置的連接關係進行可視化時,還可以在圖中展示一些屬性。這些屬性通常用於圖表分析,之後也可以被可視化。這樣我們的節點和邊就充分表現了圖的內容。現在我們可以用igraph庫生成一個圖結構g,這對於以後快速計算每個節點的等級或其他屬性尤為必要。
  • Python 連接開放航空交通數據,輕鬆構建航班跟蹤應用!
    之前我發表過兩篇用python跟蹤航班的教程。一篇是使用python創建簡單的航班跟蹤應用,另一篇是使用pandas和bokeh創建航班跟蹤應用。那麼那兩篇文章跟本文有什麼區別?主要的區別是數據源。那兩篇文章我使用了ADS-B Exchange,而這篇文章將使用Opensky Network。另一個區別就是模塊的版本。本文將使用最新的python庫,特別是繪圖庫。
  • 金融科技領域最受歡迎的八個Python庫
    Python作為一種程式語言,越來越受到人們的青睞,使用Python及其框架的金融科技創業公司數量不斷增加。投資銀行和對衝基金行業也在使用Python來解決定價、交易管理和風險管理平臺的定量問題。美國銀行前任總經理Kirat Singh表示,"摩根大通的每個人都需要了解Python,美國銀行約5000名開發人員都在使用Python。
  • 網際網路人要了解的數據可視化 —— 基礎篇
    視覺設計:以可視化的手段將數據轉化成有趣的設計語言。突出信息:根據可視化展示目標,將重要信息添加輔助線或更改顏色等手段,進行信息的凸顯,將用戶的注意力引向關鍵信息,幫助用戶理解數據意義。3.1 明確目的大多數情況,明確圖表本身要達到的目的,比製作好圖表本身更加重要。
  • 創造生動有趣的動畫,Matplotlib庫大顯身手
    在描述像過去幾年的股票價格、過去十年的氣候變化、季節性和趨勢等時間序列數據時,與靜態圖相比,動畫更能說明問題。因為,從動畫中,我們可以看到特定參數是如何隨時間而變化的。上圖是模擬雨的圖像。此圖由Matplotlib繪圖庫繪製而成,該繪圖庫常常被認為是python可視化數據包的原始數據組。
  • 如何將傳感器坐標系下的數據轉換到自車坐標系?
    如何將傳感器坐標系下的數據轉換到自車坐標系?本文將會集中在如何將傳感器坐標系下的數據轉換到自車坐標系下。有關無人駕駛技術中傳感器到車體坐標系的坐標轉換原理及數學推導,該原理不僅用在無人車領域,同時在機器人、無人機、三維建模等領域也得到了廣泛使用。 無人車上擁有各種各樣的傳感器,每個傳感器的安裝位置和角度又不盡相同。對於傳感器的提供商,開始並不知道傳感器會以什麼角度,安裝在什麼位置,因此只能根據傳感器自身建立坐標系。
  • 2019 年 13 大 GraphQL 工具和庫
    GraphQL 本質上是「API 的查詢語言,以及使用你為數據定義的類型系統執行查詢的服務端運行時」。它不依賴任何資料庫或存儲,而是由你的代碼和數據來支持。GraphQL 查詢是發送到運行時的字符串,它向客戶端返回 JSON。
  • 數據可視化怎麼做,如何利用慧編程巧妙實現「數據可視化」?
    在信息大爆炸的時代,我們每天都接收和傳遞著成千上萬的新消息。在這個過程中,我們既是數據的生產者,也是數據的使用者。然而,初次獲取和存儲的原始數據總是雜亂無章的。要想數據達到生動有趣、讓人一目了然的效果,就需要藉助數據可視化。什麼是數據可視化?
  • tkinter庫(一)
    「甲之蜜糖,乙之砒霜;甲之煉獄,乙之天堂」
  • 如何使用python語言第三方庫獲取CPU信息
    >psutilpythondjango在Visual Studio 2019開發工具中,我們創建python項目,然後新建python文件,安裝psutil第三方庫,接著獲取電腦CPU的相關信息。下面利用實例說明psutil用法以及CPU信息:操作步驟:1、打開Visual Studio 2019開發工具,創建python項目,然後在項目指定文件夾下,新建python文件