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

坐标轴刻度QCPAxisTicker

一、QCPAxisTicker 概述

QCPAxisTicker 是 QCustomPlot 中控制坐标轴刻度生成和显示的基类,负责计算刻度位置和生成刻度标签。

二、主要派生类

类名描述
QCPAxisTickerFixed固定步长的刻度生成器
QCPAxisTickerLog对数坐标刻度生成器
QCPAxisTickerPi专门显示π倍数的刻度生成器
QCPAxisTickerText自定义文本标签的刻度生成器
QCPAxisTickerDateTime日期时间刻度生成器
QCPAxisTickerTime时间刻度生成器

三、QCPAxisTicker 核心属性

属性类型描述
tickCountint期望的刻度数量(近似)
tickOrigindouble刻度起始参考点
tickStepStrategyTickStepStrategy刻度步长策略

四、QCPAxisTicker 常用方法

1. 基本配置方法

方法参数返回值描述
setTickCountint countvoid设置期望刻度数量
setTickOrigindouble originvoid设置刻度起始点
setTickStepStrategyTickStepStrategy strategyvoid设置步长策略

2. 刻度生成方法

方法参数返回值描述
generateconst QCPRange &range, const QLocale &locale, QChar formatChar, int precisionQVector<double>生成刻度位置
getTickLabeldouble tick, const QLocale &locale, QChar formatChar, int precisionQString获取刻度标签
getSubTickCountdouble tickStepint获取子刻度数量
getTickStepconst QCPRange &rangedouble计算刻度步长

五、QCPAxisTickerFixed 专用方法

方法参数描述
setTickStepdouble step设置固定刻度步长
setScaleStrategyScaleStrategy strategy设置缩放策略

六、QCPAxisTickerLog 专用方法

方法参数描述
setLogBasedouble base设置对数底数
setSubTickCountint subTicks设置子刻度数量

七、QCPAxisTickerDateTime 专用方法

方法参数描述
setDateTimeFormatconst QString &format设置日期时间格式
setDateTimeSpecconst Qt::TimeSpec &spec设置时区规范

八、枚举类型

1. TickStepStrategy 刻度步长策略

描述
tssReadability优先考虑可读性
tssMeetTickCount优先满足刻度数量

2. ScaleStrategy (QCPAxisTickerFixed)

描述
ssNone不自动调整
ssMultiples调整为步长的整数倍
ssPowers调整为步长的幂次

九、基础使用示例

cpp

// 使用固定步长刻度
QSharedPointer<QCPAxisTickerFixed> fixedTicker(new QCPAxisTickerFixed);
fixedTicker->setTickStep(0.5); // 每0.5单位一个刻度
fixedTicker->setScaleStrategy(QCPAxisTickerFixed::ssMultiples);
customPlot->xAxis->setTicker(fixedTicker);// 使用对数刻度
QSharedPointer<QCPAxisTickerLog> logTicker(new QCPAxisTickerLog);
logTicker->setLogBase(10);
logTicker->setSubTickCount(8);
customPlot->yAxis->setTicker(logTicker);// 使用日期时间刻度
QSharedPointer<QCPAxisTickerDateTime> dateTicker(new QCPAxisTickerDateTime);
dateTicker->setDateTimeFormat("yyyy-MM-dd\nhh:mm:ss");
customPlot->xAxis->setTicker(dateTicker);

十、高级用法示例

1. 自定义文本标签

cpp

QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);
textTicker->addTick(1, "低");
textTicker->addTick(5, "中");
textTicker->addTick(10, "高");
customPlot->yAxis->setTicker(textTicker);

2. 自定义刻度生成器

cpp

class CustomTicker : public QCPAxisTicker {
public:virtual QString getTickLabel(double tick, const QLocale &locale, QChar formatChar, int precision) override {if (tick == 0) return "零";else if (tick > 0) return QString("+%1").arg(tick);else return QString("-%1").arg(-tick);}
};QSharedPointer<CustomTicker> customTicker(new CustomTicker);
customPlot->xAxis->setTicker(customTicker);

3. 动态调整刻度密度

cpp

connect(customPlot->xAxis, &QCPAxis::rangeChanged, [=](const QCPRange &range){if (range.size() > 100) {fixedTicker->setTickStep(10);} else {fixedTicker->setTickStep(1);}
});

十一、性能优化技巧

  1. 简化刻度标签

    cpp

    dateTicker->setDateTimeFormat("MM-dd"); // 使用更短的日期格式
  2. 减少刻度数量

    cpp

    fixedTicker->setTickCount(5); // 限制最大刻度数
  3. 关闭子刻度

    cpp

    logTicker->setSubTickCount(0); // 不显示子刻度

QCPAxisTicker 提供了高度灵活的刻度控制系统,可以满足各种专业图表的坐标轴需求。通过选择合适的派生类并合理配置,可以实现精确的刻度控制和美观的标签显示。

http://www.xdnf.cn/news/49843.html

相关文章:

  • Web3.0热门领域NFT项目实战课程
  • 使用virtualbox的HostOnly建立共享网络-实现虚拟机上网
  • Function calling LLMs 的 MCP:AI开发的双剑合璧
  • 访问”和“初始化本质区别以及C++静态成员变量定义位置详解
  • 【Rust 精进之路之第9篇-所有权·核心】规则与移动 (Move):Rust 内存安全基石详解
  • Go语言中的sync.Map与并发安全数据结构完全指南
  • Linux:文件系统
  • 【C++基本算法】背包问题——完全背包
  • javaSE.二叉树的遍历
  • 8.QT-按钮类控件|Push Button|Radio Button|Check Box|Tool Button(C++)
  • VitePress搭建-接入giscus的注意事项。
  • Python NLTK库【NLP核心库】全面解析
  • 25.4.20学习总结
  • 专业PCB设计外包服务
  • Sharding-JDBC 系列专题 - 第一篇:简介与快速入门
  • 如何一键批量删除多个 Word 文档中的页眉和页脚
  • TCP报文段解析:从抽象到具象的趣味学习框架
  • RNN - 循环神经网络(实现)
  • 【计量地理学】实验四 主成分分析与莫兰指数
  • keil5烧录后No Debug
  • 【工具变量】A股上市企业数据资产披露水平数据集(2000-2023年)
  • 线程安全总结
  • unordered_map、unordered_set详解
  • FTP协议命令和响应码
  • LabVIEW发电机励磁系统远程诊断
  • XSS学习2
  • Spring源码中关于抽象方法且是个空实现这样设计的思考
  • MySQL入门实战篇(零基础学习MySQL指南)
  • 智能座舱所有功能测试
  • 基于Springboot的网上拍卖系统