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);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM