// set locale to english, so we get english month names: customPlot->setLocale(QLocale(QLocale::English, QLocale::UnitedKingdom)); // seconds of current time, we'll use it as starting point in time for data: double now = QDateTime::currentDateTime().toTime_t(); srand(8); // set the random seed, so we always get the same random data // create multiple graphs: for (int gi=0; gi<5; ++gi) { customPlot->addGraph(); QColor color(20+200/4.0*gi,70*(1.6-gi/4.0), 150, 150); customPlot->graph()->setLineStyle(QCPGraph::lsLine); customPlot->graph()->setPen(QPen(color.lighter(200))); customPlot->graph()->setBrush(QBrush(color)); // generate random walk data: QVector<QCPGraphData> timeData(250); for (int i=0; i<250; ++i) { timeData[i].key = now + 24*3600*i; if (i == 0) timeData[i].value = (i/50.0+1)*(rand()/(double)RAND_MAX-0.5); else timeData[i].value = qFabs(timeData[i-1].value)*(1+0.02/4.0*(4-gi)) + (i/50.0+1)*(rand()/(double)RAND_MAX-0.5); } customPlot->graph()->data()->set(timeData); } // configure bottom axis to show date instead of number: QSharedPointer<QCPAxisTickerDateTime> dateTicker(new QCPAxisTickerDateTime); dateTicker->setDateTimeFormat("d. MMMM\nyyyy"); customPlot->xAxis->setTicker(dateTicker); // configure left axis text labels: QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText); textTicker->addTick(10, "a bit\nlow"); textTicker->addTick(50, "quite\nhigh"); customPlot->yAxis->setTicker(textTicker); // set a more compact font size for bottom and left axis tick labels: customPlot->xAxis->setTickLabelFont(QFont(QFont().family(), 8)); customPlot->yAxis->setTickLabelFont(QFont(QFont().family(), 8)); // set axis labels: customPlot->xAxis->setLabel("Date"); customPlot->yAxis->setLabel("Random wobbly lines value"); // make top and right axes visible but without ticks and labels: customPlot->xAxis2->setVisible(true); customPlot->yAxis2->setVisible(true); customPlot->xAxis2->setTicks(false); customPlot->yAxis2->setTicks(false); customPlot->xAxis2->setTickLabels(false); customPlot->yAxis2->setTickLabels(false); // set axis ranges to show all data: customPlot->xAxis->setRange(now, now+24*3600*249); customPlot->yAxis->setRange(0, 60); // show legend with slightly transparent background brush: customPlot->legend->setVisible(true); customPlot->legend->setBrush(QColor(255, 255, 255, 150));