Anzeige von Temperaturdaten mit negativen Balken
Hinweis: Dies ist Teil des Beispiels aus der Galerie Diagramme mit Widgets. Für unser Beispiel verwenden wir Temperaturdaten.
Zunächst erstellen wir zwei Balkensätze und fügen die Daten an sie an. Ein Satz stellt die Mindesttemperaturen und der andere die Höchsttemperaturen dar.
auto low = new QBarSet("Min"); auto high = new QBarSet("Max"); *low << -52 << -50 << -45.3 << -37.0 << -25.6 << -8.0 << -6.0 << -11.8 << -19.7 << -32.8 << -43.0 << -48.0; *high << 11.9 << 12.8 << 18.5 << 26.5 << 32.0 << 34.8 << 38.2 << 34.8 << 29.8 << 20.4 << 15.1 << 11.8;
Wir erstellen die Serie und fügen die Barsets an sie an. Die Serie wird Eigentümerin der Barsets.
auto series = new QStackedBarSeries; series->append(low); series->append(high);
Hier erstellen wir das Diagrammobjekt und fügen die Serie hinzu. Wir legen den Titel für das Diagramm mit setTitle fest und schalten dann die Animationen der Serie ein, indem wir setAnimationOptions(QChart::SeriesAnimations) aufrufen.
auto chart = new QChart; chart->addSeries(series); chart->setTitle("Temperature records in Celcius"); chart->setAnimationOptions(QChart::SeriesAnimations);
Um die Kategorien auf einer Achse anzeigen zu lassen, müssen wir eine QBarCategoryAxis erstellen. Hier erstellen wir eine Kategorieachse mit einer Liste von Kategorien und fügen sie dem Diagramm unten ausgerichtet als x-Achse hinzu. Das Diagramm übernimmt die Achse. Für die y-Achse verwenden wir eine Wertachse, die links ausgerichtet ist. Wir ändern den Bereich für die y-Achse, da dies schönere Ergebnisse als bei der automatischen Skalierung liefert.
QStringList categories = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" }; auto axisX = new QBarCategoryAxis; axisX->append(categories); axisX->setTitleText("Month"); chart->addAxis(axisX, Qt::AlignBottom); auto axisY = new QValueAxis; axisY->setRange(-52, 52); axisY->setTitleText("Temperature [°C]"); chart->addAxis(axisY, Qt::AlignLeft); series->attachAxis(axisX); series->attachAxis(axisY);
Wir wollen auch die Legende einblenden. Dazu holen wir uns den Legendenzeiger aus dem Diagramm und setzen ihn auf sichtbar. Außerdem platzieren wir die Legende am unteren Rand des Diagramms, indem wir ihre Ausrichtung auf Qt::AlignBottom setzen.
chart->legend()->setVisible(true); chart->legend()->setAlignment(Qt::AlignBottom);
Schließlich fügen wir das Diagramm zu einer Ansicht hinzu.
createDefaultChartView(chart);
Das Diagramm ist nun bereit, angezeigt zu werden.
© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.