Combinaison d'un diagramme à lignes et d'un diagramme à barres
Note : Ceci fait partie de l'exemple de la galerie Charts with Widgets.
Dans cet exemple, nous combinons un graphique en courbes avec un graphique en barres et utilisons l'axe des catégories comme axe commun pour les deux.

Nous créons ici des données pour notre série de barres.
auto set0 = new QBarSet("Jane"); auto set1 = new QBarSet("John"); auto set2 = new QBarSet("Axel"); auto set3 = new QBarSet("Mary"); auto set4 = new QBarSet("Sam"); *set0 << 1 << 2 << 3 << 4 << 5 << 6; *set1 << 5 << 0 << 0 << 4 << 0 << 7; *set2 << 3 << 5 << 8 << 13 << 8 << 5; *set3 << 5 << 6 << 7 << 3 << 4 << 5; *set4 << 9 << 7 << 5 << 3 << 1 << 2;
Nous créons une série de barres et y ajoutons des ensembles. Les premières valeurs de chaque ensemble sont regroupées dans la première catégorie, les deuxièmes valeurs dans la deuxième catégorie et ainsi de suite.
auto barseries = new QBarSeries; barseries->append(set0); barseries->append(set1); barseries->append(set2); barseries->append(set3); barseries->append(set4);
Nous créons ensuite une série de lignes et y ajoutons des données. Pour que les données correspondent au graphique à barres, nous utilisons l'indice comme valeur x pour notre série de lignes, de sorte que le premier point se trouve à (0,valeur), le second à (1,valeur) et ainsi de suite.
auto lineseries = new QLineSeries; lineseries->setName("trend"); lineseries->append(QPoint(0, 4)); lineseries->append(QPoint(1, 15)); lineseries->append(QPoint(2, 20)); lineseries->append(QPoint(3, 4)); lineseries->append(QPoint(4, 12)); lineseries->append(QPoint(5, 17));
Ici, nous créons le graphique et y ajoutons les deux séries.
auto chart = new QChart; chart->addSeries(barseries); chart->addSeries(lineseries); chart->setTitle("Line and Bar Chart");
Pour que le graphique affiche correctement les séries, nous devons créer des axes personnalisés pour les séries. Si nous ne créons pas d'axes personnalisés, chaque série sera mise à l'échelle pour utiliser la zone maximale du graphique (comme dans le cas d'une série unique) et le résultat sera incorrect. Avec les axes personnalisés, nous définissons la plage des deux séries pour qu'elles suivent le même axe. Pour l'axe des x, nous utilisons QBarCategoryAxis et pour l'axe des y, nous utilisons QValuesAxis.
QStringList categories; categories << "Jan" << "Feb" << "Mar" << "Apr" << "May" << "Jun"; auto axisX = new QBarCategoryAxis; axisX->append(categories); chart->addAxis(axisX, Qt::AlignBottom); lineseries->attachAxis(axisX); barseries->attachAxis(axisX); axisX->setRange(QString("Jan"), QString("Jun")); auto axisY = new QValueAxis; chart->addAxis(axisY, Qt::AlignLeft); lineseries->attachAxis(axisY); barseries->attachAxis(axisY); axisY->setRange(0, 20);
Nous voulons également afficher la légende.
chart->legend()->setVisible(true); chart->legend()->setAlignment(Qt::AlignBottom);
Enfin, nous ajoutons le graphique à une vue.
createDefaultChartView(chart);
© 2026 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.