Qt 5.7 | Qt Charts | Logarithmic Axis Example

Qt 5.7.1 Reference Documentation

# Logarithmic Axis Example

Create a QLineSeries instance and add some data to it.

      QLineSeries *series = new QLineSeries();
      *series << QPointF(1, 1) << QPointF(2, 73) << QPointF(3, 268) << QPointF(4, 17) << QPointF(5, 4325) << QPointF(6, 723);

To present the data on the chart we need a QChart instance. Add the series to it, hide the legend and set the title of the chart.

      QChart *chart = new QChart();
      chart->addSeries(series);
      chart->legend()->hide();
      chart->setTitle("Logarithmic axis example");

Create the axes. Add them to the chart and attach to the series.

      QValueAxis *axisX = new QValueAxis;
      axisX->setTitleText("Data point");
      axisX->setTickCount(6);
      axisX->setLabelFormat("%i");
      chart->addAxis(axisX, Qt::AlignBottom);
      series->attachAxis(axisX);

      QLogValueAxis *axisY = new QLogValueAxis;
      axisY->setLabelFormat("%g");
      axisY->setTitleText("Values");
      axisY->setBase(8);
      chart->addAxis(axisY, Qt::AlignLeft);
      series->attachAxis(axisY);

Then create a QChartView object with QChart as a parameter. Enable antialiasing to have the rendered line look nicer.

      QChartView *chartView = new QChartView(chart);
      chartView->setRenderHint(QPainter::Antialiasing);

The chart is ready to be shown.

      QMainWindow window;
      window.setCentralWidget(chartView);
      window.resize(400, 300);
      window.show();

Files:

- logvalueaxis/main.cpp
- logvalueaxis/logvalueaxis.pro