QCharts automatic axes scaling problem



  • Dear all,

    I want to plot data with QCharts. My idea is to create a chart and series in the constructor and add the series to the chart. Then I'd like like to add data to the series in a function and add axes to the chart that are scaled to the data points.

    createDefaultAxes() seems to do just what I want, but the scaling only works if I add the series to the chart after adding the data points.

    My code looks like so:

        QLineSeries *series = new QLineSeries();
        QChart *chart = new QChart();
        chart->setTitle("Simple line chart example");
        ui->chartView->setChart(chart);
        ui->chartView->setRenderHint(QPainter::Antialiasing);
    
        chart->addSeries(series); // <- axes _not_ scaled properly
    
        series->append(0, 0);
        series->append(2, 4);
        series->append(3, 8);
        series->append(7, 4);
        series->append(10, 5);
    
        // chart->addSeries(series); // <- axes scaled properly
    
        chart->createDefaultAxes();
    

    0_1503392158044_QChart.png

    I don't really understand why it makes a difference, where series is added to chart. In the end, it's just a pointer, right?

    Does anyone have an idea how I can tell chart that its series has updated?

    Any help is appreciated :-)

    Best,
    Sebastian



  • Can anyone just confirm that it at least should work? Or am I reading the documentation wrong? Otherwise I'd file a bug...

    Best,
    Sebastian


  • Lifetime Qt Champion

    Hi,

    From a quick look at the documentation, I haven't see anything stating that adding points to a series after it has been added to a chart should trigger anything. The QAstractSeries class also doesn't seem to offer anything related to triggering an update.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.