QT -- QChart的几种 坐标轴 的详细介绍及使用代码示例

QCHART的几种坐标轴的详细介绍及使用代码示例

QCHART主要有如下几种坐标轴:

  • QAbstractAxis->QBarCategoryAxis:柱状图坐标轴文字
  • QAbstractAxis->QDateTimeAxis:日期坐标轴
  • QAbstractAxis->QLogValueAxis: (对数做标轴)
  • QAbstractAxis->QValueAxis(设置坐标轴范围)->QCategoryAxis(文字描述坐标轴)

下面详细介绍各种坐标轴的使用代码:

QAbstractAxis->QBarCategoryAxis:柱状图坐标轴文字

复制代码
QChartView *chartView = new QChartView;
  QBarSeries *series = new QBarSeries;
  // ...
  chartView->chart()->addSeries(series);
  chartView->chart()->createDefaultAxes();
 
  QBarCategoryAxis *axisX = new QBarCategoryAxis;
  QStringList categories;
  categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun";
  axisX->append(categories);
  axisX->setRange("Feb", "May");
  chartView->chart()->setAxisX(axisX, series);
复制代码

QDateTimeAxis:日期坐标轴

QChartView *chartView = new QChartView;
  chartView->chart()->addSeries(series);
 
  // ...
  QDateTimeAxis *axisX = new QDateTimeAxis;
  axisX->setFormat("dd-MM-yyyy h:mm");
  chartView->chart()->setAxisX(axisX, series);

QAbstractAxis->QLogValueAxis(对数做标轴)

复制代码
QValueAxis *axisX = new QValueAxis();
  axisX->setTitleText("Data point");
  axisX->setLabelFormat("%i");
  axisX->setTickCount(series->count());
  chart->addAxis(axisX, Qt::AlignBottom);
  series->attachAxis(axisX);
 
  QLogValueAxis *axisY = new QLogValueAxis();
  axisY->setTitleText("Values");
  axisY->setLabelFormat("%g");
  axisY->setBase(8.0);
  axisY->setMinorTickCount(-1);
  chart->addAxis(axisY, Qt::AlignLeft);
  series->attachAxis(axisY);
复制代码

QValueAxis(设置坐标轴范围)

复制代码
QChartView *chartView = new QChartView;
  QLineSeries *series = new QLineSeries;
  // ...
  chartView->chart()->addSeries(series);
 
  QValueAxis *axisX = new QValueAxis;
  axisX->setRange(10, 20.5);
  axisX->setTickCount(10);
  axisX->setLabelFormat("%.2f");
  chartView->chart()->setAxisX(axisX, series);
复制代码

QCategoryAxis(文字描述坐标轴)

复制代码
QChartView *chartView = new QChartView;
  QLineSeries *series = new QLineSeries;
  // ...
  chartView->chart()->addSeries(series);
 
  QCategoryAxis *axisY = new QCategoryAxis;
  axisY->setMin(0);
  axisY->setMax(52);
  axisY->setStartValue(15);
  axisY->append("First", 20);
  axisY->append("Second", 37);
  axisY->append("Third", 52);
  chartView->chart()->setAxisY(axisY, series);
复制代码

 

posted @   手磨咖啡  阅读(7791)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示