Combiner un graphique linéaire et un graphique à barres
Remarque : cet exemple fait partie de la galerie « Graphiques avec widgets ».
Dans cet exemple, nous combinons un graphique linéaire et un graphique à barres, et utilisons l'axe des catégories comme axe commun aux deux.

Nous créons ici les données pour notre série de graphiques à 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);Ensuite, nous créons une série de lignes et y ajoutons des données. Pour que les données correspondent à celles du graphique à barres, nous utilisons l’index comme valeur x pour notre série de lignes, de sorte que le premier point se trouve en (0, valeur), le deuxième en (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 celles-ci. Si nous ne créons pas d’axes personnalisés, chaque série sera mise à l’échelle pour occuper la surface maximale du graphique (comme dans le cas d’une série unique) et le résultat sera erroné. Avec des 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 souhaitons é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.