当前位置: 首页 > news >正文

Qt QLogValueAxis详解

1、概述

QLogValueAxis 是 Qt 图表模块(Qt Charts)中的一个类,用于在图表中创建对数刻度的数值轴。与线性刻度的 QValueAxis 不同,QLogValueAxis 采用对数刻度,特别适合展示范围跨度极大的数据(如从 1 到 1000000 的数据),能够更清晰地呈现数据的相对变化趋势。

QLogValueAxis 继承自 QAbstractAxis,可与各种图表系列(如折线图、散点图等)配合使用,通常用于科学数据可视化、金融数据展示等场景。使用时需要注意,对数轴不能包含零或负值,因为对数函数在这些值上没有定义。

2、重要方法

  • qreal base() const:返回对数的底数(默认为 10)
  • void setBase(qreal base):设置对数的底数(必须大于 0 且不等于 1)
  • qreal min() const:返回轴的最小值
  • void setMin(qreal min):设置轴的最小值(必须为正数)
  • qreal max() const:返回轴的最大值
  • void setMax(qreal max):设置轴的最大值(必须为正数且大于最小值)
  • void setRange(qreal min, qreal max):同时设置轴的最小值和最大值
  • int tickCount() const:返回刻度数量
  • void setTickCount(int count):设置刻度数量
  • QString labelFormat() const:返回轴标签的格式字符串
  • void setLabelFormat(const QString &format):设置轴标签的格式字符串(如 "%.2f" 表示保留两位小数)
  • void applyNiceNumbers():自动调整轴范围以显示更美观的刻度

3、信号

  • void baseChanged(qreal base):当对数的底数发生变化时发射
  • void minChanged(qreal min):当轴的最小值发生变化时发射
  • void maxChanged(qreal max):当轴的最大值发生变化时发射
  • void rangeChanged(qreal min, qreal max):当轴的范围(最小值或最大值)发生变化时发射
  • void tickCountChanged(int tickCount):当刻度数量发生变化时发射
  • void labelFormatChanged(const QString &format):当标签格式发生变化时发射

4、C++ 实例

#include <QApplication>
#include <QtCharts/QChartView>
#include <QtCharts/QLineSeries>
#include <QtCharts/QValueAxis>
#include <QtCharts/QAreaSeries>
#include <QLegend>
#include <QHCandlestickModelMapper>QT_CHARTS_USE_NAMESPACEint main(int argc, char *argv[])
{QApplication a(argc, argv);// 创建一个线性数据系列QLineSeries *series = new QLineSeries();*series << QPointF(1, 1) << QPointF(2, 10) << QPointF(3, 100) << QPointF(4, 1000) << QPointF(5, 10000);// 创建图表对象QChart *chart = new QChart();chart->addSeries(series);chart->setTitle("对数坐标轴示例");// 创建对数坐标轴(X 轴)QLogValueAxis *axisX = new QLogValueAxis();axisX->setBase(10);  // 设置底数为 10axisX->setRange(1, 5);  // 设置 X 轴的显示范围(对数坐标)// 创建线性坐标轴(Y 轴)QLogValueAxis *axisY = new QLogValueAxis();axisY->setBase(10);  // 设置底数为 10axisY->setRange(1, 10000);  // 设置 Y 轴的显示范围(对数坐标)// 将坐标轴添加到图表chart->setAxisX(axisX, series);chart->setAxisY(axisY, series);// 创建图表视图,并将图表添加到视图中QChartView *chartView = new QChartView(chart);chartView->setRenderHint(QPainter::Antialiasing);// 创建窗口并设置窗口内容QWidget window;QVBoxLayout *layout = new QVBoxLayout();layout->addWidget(chartView);window.setLayout(layout);window.setWindowTitle("Qt 对数坐标轴示例");window.resize(600, 400);window.show();return a.exec();
}

点击扫码加入群聊

觉得有帮助的话,打赏一下呗。。

           

需要商务合作(定制程序)的欢迎私信!! 


文章转载自:

http://uarcR40c.ptqds.cn
http://lGImwLYH.ptqds.cn
http://WddJrPM5.ptqds.cn
http://SDNC3UWi.ptqds.cn
http://uI17zHsV.ptqds.cn
http://20y7dwIB.ptqds.cn
http://D7prvfYK.ptqds.cn
http://T8D84ej8.ptqds.cn
http://iFw2NHOi.ptqds.cn
http://Wej8zHsv.ptqds.cn
http://YwW4yma9.ptqds.cn
http://d2PJ2cNa.ptqds.cn
http://WIh2FQ5u.ptqds.cn
http://7gwAsLq6.ptqds.cn
http://9aRtLz3M.ptqds.cn
http://MMK0xJYI.ptqds.cn
http://wOnDTSMT.ptqds.cn
http://w4Fp3Tf9.ptqds.cn
http://gxXeeo04.ptqds.cn
http://GObLTZmc.ptqds.cn
http://BODtW8TH.ptqds.cn
http://ylgZD3uH.ptqds.cn
http://L6pmt2eH.ptqds.cn
http://gpENDQII.ptqds.cn
http://FN0NIfD5.ptqds.cn
http://lzUg31X4.ptqds.cn
http://XCDguFwB.ptqds.cn
http://i90XIZMN.ptqds.cn
http://eBXti1zg.ptqds.cn
http://gDLuAnUr.ptqds.cn
http://www.dtcms.com/a/388155.html

相关文章:

  • Oracle为数据大表创建索引方案
  • 5T核磁mr效果
  • 【仿真测试】基于FPGA的完整QPSK通信链路实现,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计
  • TCP和HTTP的关系
  • 数据结构从入门到实战————链表
  • 将个人网站迁移成红警风格
  • 【用函数删除数组中特定数字】2022-11-23
  • MySQL序列,模拟Oracle序列MySQL如何备份才能不丢“下一个值”?
  • python发送请求不使用代理
  • 亚马逊卖家精灵如何做产品分析?卖家精灵优惠折扣码是什么?
  • 提示词工程(Prompt Engineering)是不是“新时代的编程”?
  • http 基于 websocket 协议通信
  • 媒体发稿渠道选择难?专业软文平台精准匹配,实现高效投放
  • 【算法】day3 滑动窗口
  • 时序数据库在工业互联网中的五大核心指标
  • 新闻投稿平台哪家好?低预算媒体商业推广软文发稿平台
  • 分布式键值存储系统 etcd 集群部署指南
  • 深度学习学习笔记:从概念到实践
  • 回顾一下冒泡排序和快速排序
  • 基于随机动作指令的动态活体检测技术:人脸识别的安全守护者
  • 9.17 学习记录
  • 桥接、NAT和仅主机模式【介绍】
  • C语言程序从开发到单片机执行:编译、存储与运行机制详解
  • 利用云手机实现热血江湖游戏多开
  • Leetcode学习(灵神精讲题)167. 两数之和 II - 输入有序数组(相向双指针)
  • 力扣习题哈希表篇:两句话中不常见单词
  • 分布式流处理与消息传递——向量时钟 (Vector Clocks) 算法详解
  • 车载诊断架构 --- 无车辆识别码(VIN)时的车辆声明报文规范
  • 解读智慧政务云计算数据中心建设方案【附全文阅读】
  • 潜水员戴夫团队新作《纳克园 最后的乐园》开发顺利!