QML Charts組件之坐標軸示例

目錄

    • 引言
    • 🎯 運行效果預覽
    • 📚 相關系列文章
    • 五種坐標軸詳解與代碼實踐
      • 1. 數值坐標軸(ValueAxis)
        • 示例代碼
        • 說明
      • 2. 對數坐標軸(LogValueAxis)
        • 示例代碼
        • 說明
      • 3. 日期坐標軸(DateTimeAxis)
        • 示例代碼
        • 說明
      • 4. 分類坐標軸(CategoryAxis)
        • 示例代碼
        • 說明
      • 5. 柱形圖分類坐標軸(BarCategoryAxis)
        • 示例代碼
        • 說明
    • 總結
    • 源碼下載
    • 參考

引言

在使用QML進行數據可視化開發時,QtCharts模塊提供了強大而靈活的圖表功能。其中坐標軸是圖表的核心組成部分之一,它決定了數據如何在圖表中被展示和解讀。合理選擇和配置坐標軸類型,不僅能提升圖表的可讀性,還能更準確地反映數據特征。

本文將詳細介紹 QtCharts 中的五種常用坐標軸類型:

  • ValueAxis:數值坐標軸
  • LogValueAxis:對數坐標軸
  • DateTimeAxis:日期時間坐標軸
  • CategoryAxis:分類坐標軸
  • BarCategoryAxis:柱形圖分類坐標軸

🎯 運行效果預覽

坐標軸示例


📚 相關系列文章

在QML中使用Chart組件


五種坐標軸詳解與代碼實踐

1. 數值坐標軸(ValueAxis)

? 適用場景 用于表示連續的數值數據,如溫度、速度、價格等線性變化的數據。

📊 效果圖 :

數值坐標軸

示例代碼
import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "數值坐標軸示例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueValueAxis {id: valueAxisXmin: 0max: 4titleText: "X Title"}ValueAxis {id: valueAxisYmin: 0max: 16titleText: "Y Title"}LineSeries {name: "line"XYPoint { x: 0; y: 0 }XYPoint { x: 1; y: 1 }XYPoint { x: 2; y: 4 }XYPoint { x: 3; y: 9 }XYPoint { x: 4; y: 16 }axisX: valueAxisXaxisY: valueAxisY}}
}
說明
  • ValueAxis 支持設置最小值 min 和最大值 max。 - 可通過 titleText 設置坐標軸標題。
  • LineSeries 使用 axisXaxisY 綁定到對應軸。

2. 對數坐標軸(LogValueAxis)

? 適用場景 當數據跨度極大(如從1到10000),使用對數坐標可以更好地展示變化趨勢,常用于科學計算、信號處理等領域。

📊 效果圖:

對數坐標軸

示例代碼
import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "對數坐標軸示例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueLogValueAxis {id: valueAxisXmin: 1max: 100base: 10labelFormat: "%.0f"titleText: "X Title"}LogValueAxis {id: valueAxisYmin: 1max: 10000base: 10labelFormat: "%.0f"titleText: "Y Title"}LineSeries {name: "line"XYPoint { x: 1; y: 1 }XYPoint { x: 10; y: 100 }XYPoint { x: 100; y: 10000 }axisX: valueAxisXaxisY: valueAxisY}}
說明
  • LogValueAxisbase 屬性設置對數的底數(常用為10)。
  • labelFormat 控制刻度標簽的顯示格式。
  • 注意:對數坐標軸的最小值不能為0或負數。

3. 日期坐標軸(DateTimeAxis)

? 適用場景 適用于時間序列數據,如股票走勢、日志記錄、傳感器采樣等。

📊 效果圖:

日期坐標軸

示例代碼
import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "日期坐標軸示例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueDateTimeAxis {id: valueAxisXmin: new Date(2023, 0, 1)max: new Date(2023, 3, 1)format: "MMM yyyy"tickCount: 4titleText: "X Title"}ValueAxis {id: valueAxisYmin: 0max: 16titleText: "Y Title"}LineSeries {name: "line"// 注意:JavaScript 的 Date 對象月份是從 0 開始的XYPoint { x: new Date(2023, 0, 1).getTime(); y: 10 }XYPoint { x: new Date(2023, 1, 1).getTime(); y: 15 }XYPoint { x: new Date(2023, 2, 1).getTime(); y: 12 }XYPoint { x: new Date(2023, 3, 1).getTime(); y: 18 }axisX: valueAxisXaxisY: valueAxisY}}
}
說明
  • DateTimeAxis 使用 JavaScript 的 Date 對象。
  • getTime() 返回時間戳(毫秒),用于 XYPointx 值。
  • format 控制時間顯示格式,tickCount 設置刻度數量。

4. 分類坐標軸(CategoryAxis)

? 適用場景 需要將連續的數值區間映射成業務語義的場景。

📊 效果圖:

在這里插入圖片描述

示例代碼
import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "分類坐標軸示例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueCategoryAxis {id: valueAxisXmin: 0max: 30CategoryRange {label: "前段"endValue: 10}CategoryRange {label: "中段"endValue: 20}CategoryRange {label: "后段"endValue: 30}}CategoryAxis {id: valueAxisYmin: 0max: 40CategoryRange {label: "低"endValue: 10}CategoryRange {label: "中"endValue: 20}CategoryRange {label: "高"endValue: 30}CategoryRange {label: "極端"endValue: 40}}LineSeries {name: "line"XYPoint { x: 0; y: 3 }XYPoint { x: 4; y: 8 }XYPoint { x: 12; y: 18 }XYPoint { x: 24; y: 22 }XYPoint { x: 30; y: 25 }axisX: valueAxisXaxisY: valueAxisY}}
}
說明

該代碼演示了如何用 Charts組件中 的 CategoryAxis對象 把純數字坐標軸轉換成業務語言,既保留數值計算能力,又提升用戶可讀性,適用于任何需要分段 + 中文標簽的可視化場景。


5. 柱形圖分類坐標軸(BarCategoryAxis)

? 適用場景 用于非數值類的離散數據,如月份、地區、產品類別等,常見于柱狀圖、條形圖。

📊 效果圖:

柱形圖分類坐標軸

示例代碼
import QtQuick
import QtQuick.Layouts
import QtChartsRectangle {Layout.fillWidth: trueLayout.fillHeight: trueChartView {id: chartViewtitle: "柱形圖分類坐標軸示例"titleFont.bold: truetitleFont.pointSize: 14anchors.fill: parentantialiasing: trueBarCategoryAxis {id: valueAxisXcategories: ["一月", "二月", "三月", "四月"]titleText: "X Title"}ValueAxis {id: valueAxisYmin: 0max: 20titleText: "Y Title"}BarSeries {name: "柱形圖分類坐標軸示例"axisX: valueAxisXaxisY: valueAxisYBarSet {label: "bar"values: [10, 15, 12, 18]}}}
}
說明
  • BarCategoryAxis 使用字符串數組作為分類標簽。
  • BarSeriesBarSet 配合使用,適合柱狀圖。
  • 每個 BarSetvalues 順序必須與 categories 一一對應。

總結

坐標軸類型適用場景典型圖表
ValueAxis線性數值數據折線圖、散點圖
LogValueAxis跨數量級的數據(如指數增長)科學圖表、信號圖
DateTimeAxis時間序列數據股價圖、日志圖
CategoryAxis把連續數值區間映射為業務分段標簽(如低/中/高)分段折線圖、柱狀圖
BarCategoryAxis離散分類數據柱狀圖、條形圖

源碼下載

Git Code 下載鏈接:Charts 坐標軸示例

在這里插入圖片描述

  • 2025-08-25更新: 新增分類坐標軸,用于區分柱形圖分類坐標軸。

參考

  • ValueAxis 文檔
  • LogValueAxis 文檔
  • DateTimeAxis 文檔
  • CategoryAxis 文檔
  • BarCategoryAxis 文檔

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/94728.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/94728.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/94728.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue3+ElementPlus倒計時示例

按鈕文字默認顯示“開始倒計時”當點擊按鈕時,顯示正在倒計時(倒計時數字)倒計時結束按鈕顯示“開始倒計時” 倒計時邏輯 Hooks 函數 hooks/useCountDown.js /*** hooks函數:函數是用于封裝和復用組件邏輯的一種機制* 定義:Hooks 是一種在不使…

docker 的網絡

1.查看docker里面的網絡docker network ls 2.查看某個 Docker 網絡的 網關 IP 和 子網段docker network inspect <網絡名或ID>

數據挖掘,到底是在挖掘什么?

&#x1f468;?&#x1f393;博主簡介 &#x1f3c5;CSDN博客專家 ??&#x1f3c5;云計算領域優質創作者 ??&#x1f3c5;華為云開發者社區專家博主 ??&#x1f3c5;阿里云開發者社區專家博主 &#x1f48a;交流社區&#xff1a;運維交流社區 歡迎大家的加入&#xff01…

【車載開發系列】CS+ for CC開發環境IDE

【車載開發系列】CS for CC開發環境IDE 【車載開發系列】CS for CC開發環境IDE【車載開發系列】CS for CC開發環境IDE一. 引言二. IDE安裝三. 新建工程四. 堆與棧內存的設置1&#xff09;棧內存設置2&#xff09;堆內存設置一. 引言 瑞薩單片機開發環境有三種&#xff1a;estu…

如何將視頻從安卓設備傳輸到Mac?

你是否想要創建備份、釋放存儲空間&#xff0c;或者分享難忘時刻&#xff1f;你可能想要輕松地將視頻從安卓設備復制到MacBook。在本篇關于“如何將視頻從安卓傳輸到Mac”的指南中&#xff0c;我們將介紹五種智能方法&#xff0c;幫助你無縫地復制視頻。從傳統的WiFi連接方法到…

MyBatis 初識:框架定位與核心原理——SQL 自由掌控的藝術

&#x1f50d; MyBatis 初識&#xff1a;框架定位與核心原理——SQL 自由掌控的藝術 文章目錄&#x1f50d; MyBatis 初識&#xff1a;框架定位與核心原理——SQL 自由掌控的藝術&#x1f9e9; 一、為什么需要 ORM 框架&#xff1f;&#x1f4a1; JDBC 的痛點&#xff1a;原始時…

谷粒商城項目-P6環境-使用vagrant快速創建Linux虛擬機

1.虛擬機 虛擬機使用virtualbox,我使用的是6.0.12版本 2.創建linux系統 使用vagrant 驗證是否安裝完成vagrant 在cmd使用vagrant看看有沒有命令提示 創建虛擬機 在cmd使用vagrant init centos/7創建 創建完成后使用vagrant up啟動虛擬容器 啟動完成后&#xff0c;使用va…

人形機器人的“奧運會“:宇樹科技領跑,動捕技術成訓練關鍵

近年來&#xff0c;人工智能、仿生學和運動控制技術的突破性發展&#xff0c;正推動人形機器人成為全球科技競爭的新焦點。各國政府、科研機構和企業加速布局醫療、救援、服務等領域的應用場景。在此背景下&#xff0c;首屆世界人形機器人大會應運而生并于近日圓滿落幕。此次運…

20250823給榮品RD-RK3588開發板刷Rockchip原廠的Android14【EVB7的V10】時調通AP6275P的WIFI

20250823給榮品RD-RK3588開發板刷Rockchip原廠的Android14【EVB7的V10】時調通AP6275P的WIFI 2025/8/23 17:02【我是先將這個DTSI文件中的代碼塊直接搬到rk3588-evb7-lp4.dtsi中&#xff0c;然后就可以上網了。接著就微調到最終版本&#xff01;】 E:\RD-RK3588_Android13\kern…

Mac 菜單欄多合一工具自薦:FancyTool

鑒于本人特別喜歡花里花哨的菜單欄&#xff0c;但又不想開機自啟太多軟件&#xff0c;所以自己開發了一個新的、輕量的&#xff0c;有點花里胡哨但又有些實用功能的多合一工具&#xff1a;[ FancyTool ]&#xff0c; 感興趣的朋友可以點擊鏈接下載使用。 我承認&#xff0c;這…

用AI生成的一個BadgerDB的管理工具

badgerDB 是一款由 Dgraph Labs 開發的高性能、嵌入式鍵值&#xff08;Key-Value&#xff09;數據庫&#xff0c;基于 LSM-Tree&#xff08;Log-Structured Merge Tree&#xff09;存儲引擎設計&#xff0c;主打低延遲、高吞吐量和輕量級部署&#xff0c;廣泛用于需要本地持久化…

Spring-- Spring Security(一)

1. 概念Spring Security&#xff1a;Spring 提供的安全框架&#xff0c;用于保護應用程序免受未授權訪問&#xff0c;提供認證、授權、CSRF 防護等功能。核心功能&#xff1a;認證&#xff08;Authentication&#xff09;&#xff1a;確認用戶身份&#xff08;登錄過程&#xf…

某電器5G智慧工廠網絡建設全解析

隨著工業4.0的全面推進和智能制造需求的不斷增長&#xff0c;5G技術已成為智慧工廠建設的核心驅動力。某電器工廠計劃通過構建高效可靠的5G網絡&#xff0c;結合智能組網設備與工業物聯網技術&#xff0c;實現智能化轉型&#xff0c;提升生產運營效率。本文將詳細解析該5G智慧工…

PyCharm 加載不了 conda 虛擬環境,不存在的

#工作記錄前言在開發過程中&#xff0c;PyCharm 無法加載 Conda 虛擬環境是常見問題。在不同情況下&#xff0c;“Conda 可執行文件路徑”的指定可能會發生變化&#xff0c;不會一塵不變&#xff0c;需要靈活處置。以下是一系列解決此問題的經驗參考。檢查 Conda 安裝與環境創建…

xml中resultMap 的用法,數據庫 JSON 字符串 → Java List/對象

文章目錄一、resultMap 核心作用二、基本用法&#xff08;以你的配置為例&#xff09;1. 定義 resultMap2. 在 SQL 中使用 resultMap三、關鍵注意事項resultMap 是 MyBatis 中用于定義數據庫表字段與 Java 實體類屬性之間映射關系的核心配置&#xff0c;解決表字段名和實體類屬…

PySINDy

PySINDy A Python package for the Sparse Identification of Nonlinear Dynamics from Data Abstract PySINDy 是一個用于從數據中發現主導動力系統模型的 Python 軟件包。具體來說&#xff0c;PySINDy 提供了應用非線性動力學稀疏辨識&#xff08;SINDy&#xff09;[1] 方法…

校園跑腿小程序源碼 | 跑腿便利店小程序(源碼下載)

校園跑腿小程序源碼 | 跑腿便利店小程序 本項目后端采用 midway3.0&#xff0c;后臺采用 nuxt2.x,小程序采用 uniapp 實現的一套跑腿下單接單系統。 主要功能&#xff1a;跑腿、快遞代取、陪練陪玩、軟件安裝、申請接單、用戶下單、提現、物品重量計算等。 源碼下載&#xf…

基于stm32的物聯網OneNet火災報警系統

1 系統功能介紹 本設計為基于STM32單片機的物聯網OneNet火災報警系統。系統通過采集環境中的溫濕度、火焰檢測數據&#xff0c;并結合物聯網技術上傳至OneNet云平臺&#xff0c;實現遠程監控和報警功能。系統還具備蜂鳴器報警、LED燈閃爍等本地報警功能&#xff0c;保證在火災發…

校園跑腿小程序源碼 _ 跑腿便利店小程序 含搭建教程

內容目錄一、詳細介紹二、效果展示1.部分代碼2.效果圖展示三、學習資料下載一、詳細介紹 校園跑腿小程序源碼 | 跑腿便利店小程序 本項目后端采用 midway3.0&#xff0c;后臺采用 nuxt2.x,小程序采用 uniapp 實現的一套跑腿下單接單系統。 主要功能&#xff1a;跑腿、快遞代…

數據結構:2-3-4 樹 和 B 樹

目錄 我們為什么需要 2-3-4 樹&#xff1f; 2-3-4 樹的插入操作 從零推導代碼 B 樹 (B-Tree) 從零推導代碼 我們沿著自平衡樹的演化路徑繼續前進。我們已經學習了 2-3 樹如何通過“分裂與提升”來替代 AVL 樹的“旋轉”&#xff0c;但其修復過程是“自下而上”的。現在&am…