Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- CustomChartView* Charts::phaseHuileSuperposeChart(const QList<QDateTime> &dateTimeList, const QList<double> &debitHuileList, const QList<double> &debitCireList,
- const QList<double> &debitParaffineList, const QList<double> &debitTensioList, const QList<double> &debitPhaseHuileList)
- {
- QChart *chart = new QChart();
- chart->setTitle("Phase Huile Superposée");
- // Création des séries de données
- QLineSeries *seriesHuile = new QLineSeries();
- seriesHuile->setName("Débit Huile");
- for (int i = 0; i < dateTimeList.size(); ++i) {
- seriesHuile->append(dateTimeList[i].toMSecsSinceEpoch(), debitHuileList[i]);
- }
- QLineSeries *seriesCire = new QLineSeries();
- seriesCire->setName("Débit Cire");
- for (int i = 0; i < dateTimeList.size(); ++i) {
- seriesCire->append(dateTimeList[i].toMSecsSinceEpoch(), debitCireList[i]);
- }
- QLineSeries *seriesParaffine = new QLineSeries();
- seriesParaffine->setName("Débit Paraffine");
- for (int i = 0; i < dateTimeList.size(); ++i) {
- seriesParaffine->append(dateTimeList[i].toMSecsSinceEpoch(), debitParaffineList[i]);
- }
- QLineSeries *seriesTensio = new QLineSeries();
- seriesTensio->setName("Débit Tensio");
- for (int i = 0; i < dateTimeList.size(); ++i) {
- seriesTensio->append(dateTimeList[i].toMSecsSinceEpoch(), debitTensioList[i]);
- }
- QLineSeries *seriesPhaseHuile = new QLineSeries();
- seriesPhaseHuile->setName("Débit Phase Huile");
- for (int i = 0; i < dateTimeList.size(); ++i) {
- seriesPhaseHuile->append(dateTimeList[i].toMSecsSinceEpoch(), debitPhaseHuileList[i]);
- }
- // Ajout des séries au graphique
- chart->addSeries(seriesHuile);
- chart->addSeries(seriesCire);
- chart->addSeries(seriesParaffine);
- chart->addSeries(seriesTensio);
- chart->addSeries(seriesPhaseHuile);
- // Création des séries d'aire pour remplir l'aire sous chaque courbe
- QAreaSeries *areaSeriesHuile = new QAreaSeries(seriesHuile);
- areaSeriesHuile->setName("Débit Huile");
- QPen penHuile(0xf8a551);
- penHuile.setWidth(1);
- areaSeriesHuile->setPen(penHuile);
- QLinearGradient gradientHuile(QPointF(0, 0), QPointF(0, 1));
- gradientHuile.setColorAt(0.0, 0xf8a551);
- gradientHuile.setColorAt(1.0, 0xf8a551);
- gradientHuile.setCoordinateMode(QGradient::ObjectBoundingMode);
- areaSeriesHuile->setBrush(gradientHuile);
- QAreaSeries *areaSeriesCire = new QAreaSeries(seriesCire, seriesHuile);
- areaSeriesCire->setName("Débit Cire");
- QPen penCire(0x7085ac);
- penCire.setWidth(1);
- areaSeriesCire->setPen(penCire);
- QLinearGradient gradientCire(QPointF(0, 0), QPointF(0, 1));
- gradientCire.setColorAt(0.0, 0x7085ac);
- gradientCire.setColorAt(1.0, 0x7085ac);
- gradientCire.setCoordinateMode(QGradient::ObjectBoundingMode);
- areaSeriesCire->setBrush(gradientCire);
- // Ajout des séries d'aire au graphique
- chart->addSeries(areaSeriesCire);
- chart->addSeries(areaSeriesHuile);
- // Créer un axe X (dateTime).
- QDateTimeAxis *axisX = new QDateTimeAxis();
- axisX->setTickCount(20); // Nombre de points sur l'axe X.
- axisX->setFormat("MM-dd-yyyy\nhh:mm:ss"); // Format de l'axe X avec un saut de ligne entre la date et l'heure.
- axisX->setMin(dateTimeList.first()); // Définir la première date comme minimum de l'axe X.
- axisX->setMax(dateTimeList.last()); // Définir la dernière date comme maximum de l'axe X.
- axisX->setLabelsAngle(70); // Angle de 90 degrés pour afficher les étiquettes en diagonale.
- axisX->setTitleText("Date/Heure"); // Ajouter un titre pour l'axe X.
- axisX->setTitleVisible(true); // Rendre le titre visible.
- chart->addAxis(axisX, Qt::AlignBottom);
- // Créer un axe Y (valeur).
- QValueAxis *axisY = new QValueAxis();
- axisY->setMin(0); // Définir la valeur minimale de l'axe Y.
- axisY->setMax(300);
- axisY->setTitleText("Valeurs"); // Ajouter un titre pour l'axe Y.
- axisY->setTitleVisible(true); // Rendre le titre visible.
- chart->addAxis(axisY, Qt::AlignLeft);
- // Attacher les séries aux axes
- seriesHuile->attachAxis(axisX);
- seriesCire->attachAxis(axisX);
- seriesParaffine->attachAxis(axisX);
- seriesTensio->attachAxis(axisX);
- seriesPhaseHuile->attachAxis(axisX);
- seriesHuile->attachAxis(axisY);
- seriesCire->attachAxis(axisY);
- seriesParaffine->attachAxis(axisY);
- seriesTensio->attachAxis(axisY);
- seriesPhaseHuile->attachAxis(axisY);
- chart->legend()->setVisible(true);
- chart->legend()->setAlignment(Qt::AlignBottom);
- CustomChartView *chartView = new CustomChartView(chart);
- chartView->setRenderHint(QPainter::Antialiasing);
- return chartView;
- }
Advertisement
Add Comment
Please, Sign In to add comment