曲线添加
#include <QCustomPlot.h>
QCustomPlot* plot = new QCustomPlot(this);
QCPGraph* graph = plot->addGraph();
QVector<double> x = {1, 2, 3, 4, 5};
QVector<double> y = {1, 4, 9, 16, 25};
graph->setData(x, y);
背景
QLinearGradient plotGradient;
plotGradient.setStart(0, 0);
plotGradient.setFinalStop(0, 350);
plotGradient.setColorAt(0, QColor(255, 255, 255));
plotGradient.setColorAt(1, QColor(245, 245, 245));
ui->plot ->setBackground(plotGradient);
QLinearGradient axisRectGradient;
axisRectGradient.setStart(0, 0);
axisRectGradient.setFinalStop(0, 350);
axisRectGradient.setColorAt(0, QColor(255, 255, 255));
axisRectGradient.setColorAt(1, QColor(255, 255, 255));
ui->plot ->axisRect()->setBackground(axisRectGradient);
ui->plot ->legend->setBrush(plotGradient);
网格
ui->my_custom_plot->xAxis->grid()->setSubGridVisible(false);
ui->my_custom_plot->yAxis->grid()->setSubGridVisible(false);
ui->my_custom_plot->xAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));
ui->my_custom_plot->yAxis->grid()->setPen(QPen(QColor(140, 140, 140), 1, Qt::DotLine));
ui->my_custom_plot->xAxis->grid()->setZeroLinePen(QColor(140, 140, 140));
ui->my_custom_plot->yAxis->grid()->setZeroLinePen(QColor(140, 140, 140));
坐标轴
ui->my_custom_plot->xAxis->setBasePen(QPen(Qt::black, 1));
ui->my_custom_plot->xAxis->setTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->xAxis->setSubTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->xAxis->setTickLabelColor(Qt::black);
ui->my_custom_plot->xAxis->setLabelColor(Qt::black);
ui->my_custom_plot->yAxis->setBasePen(QPen(Qt::black, 1));
ui->my_custom_plot->yAxis->setTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->yAxis->setSubTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->yAxis->setTickLabelColor(Qt::black);
ui->my_custom_plot->yAxis->setLabelColor(Qt::black);
ui->my_custom_plot->xAxis2->setBasePen(QPen(Qt::black, 1, Qt::DotLine));
ui->my_custom_plot->xAxis2->setTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->xAxis2->setSubTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->xAxis2->setTickLabelColor(Qt::black);
ui->my_custom_plot->xAxis2->setLabelColor(Qt::black);
ui->my_custom_plot->yAxis2->setBasePen(QPen(Qt::black, 1, Qt::DotLine));
ui->my_custom_plot->yAxis2->setTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->yAxis2->setSubTickPen(QPen(Qt::black, 1));
ui->my_custom_plot->yAxis2->setTickLabelColor(Qt::black);
ui->my_custom_plot->yAxis2->setLabelColor(Qt::black);
ui->my_custom_plot->xAxis->setUpperEnding(
QCPLineEnding::esSpikeArrow);
ui->my_custom_plot->yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
设置时间轴
QSharedPointer<QCPAxisTickerDateTime> date_time_ticker(new QCPAxisTickerDateTime);
date_time_ticker->setTickStepStrategy(QCPAxisTicker::tssMeetTickCount);
date_time_ticker->setDateTimeFormat("hh:mm:ss\nyyyy-MM-dd");
ui->my_custom_plot->xAxis->setTicker(date_time_ticker);
ui->my_custom_plot->xAxis->ticker()->setTickCount(5);
QVector<double> m_timestamp{12345678};
QVector<double> value{1};
QCPGraph* graph = plot->addGraph();
graph->setData(m_timestamp, value);
graph->addData(m_timestamp, value);
曲线样式
xAxis->setBasePen(QPen(QColor(0, 163, 222)));
xAxis->setLabelColor(Qt::black);
xAxis->grid()->setPen(QPen(QColor("#159C77"), 1, Qt::DotLine));
xAxis->setTickLabelColor(Qt::black);
xAxis->setTickPen(QPen(QColor("#159C77")));
xAxis->setLabel(QStringLiteral("时间"));
xAxis->setSubTickPen(QPen(QColor("#159C77")));
xAxis->setSubTickLength(0);
xAxis->setSubTicks(false);
xAxis->setTickLabelFont(QFont("", 10));
xAxis->setRange(QCPRange(0, 50));
xAxis->ticker()->setTickCount(50);
xAxis->ticker()->setTickStepStrategy(QCPAxisTicker::tssReadability);
xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
xAxis->rescale(true);