添加一條曲線
QCPGraph* pGraph = pCustomPlot->addGraph();
設置數據
PCustomPlot->graph()->setData(x,y);
設置鼠標可以對圖像放大縮小,拖拽
pCustomPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);
重繪,每次更新數據需要重繪(或者設置多個數據之後一起進行重繪)
pCustomPlot->replot();
設置Y舟範圍
pCustomPlot->yAxis->setRange(0,20);
設置X軸爲時間軸
QCPAxisTickerDateTime //時間座標軸必須要用智能指針
QSharedPointer<QCPAXisTickDateTime> timer(new QCPAxisTickerDateTime);
設置時間格式
timer->setDateTimeFormar("yyyy-MM-dd");
設置時間軸一共幾格
timer->setTickCount(6);
設置X軸label旋轉30度
pCustomPlot->xAxis->setTickLabelRotation(30);
設置座標軸爲時間格式
pCustomPlot->xAxis->setTicker(timer);
設置Y軸座標自動縮放,能正常顯示所有數據
pCustomPlot->yAxis->rescale(true);
設置曲線畫筆
pCustomPlot->graph()->setPen(QPen(QColor(250,20,20)));
設置顯示AxisTag(顯示當前最新數據的提示)
AxisTag* pAxisTag = new AxisTag(pCustomPlot->graph()->valueAxis());
設置AxisTag的畫筆
pAxisTag->setPen(pCustomPlot->graph()->pen());
設置AxisTag位置以及文本
pAxisTag->updatePositon(valuue); //value爲當前AxisTag要顯示的值
pAxisTag->setText(QString::number(value,'f',2)); //設置要顯示的文本
移除QCustomPlot項
pCustomPlot->removeItem();
設置背景顏色
QBrush backRole;
backRole.setColor("skyblue");
backRole.setStyle(Qt::SolidPattern);
pCustomPlot->setBackground(backRole);
設置Legend背景透明
pCustomPlot->legend->setBrush(QColor(255,255,255,0));
QCPLayerable 可分層對象,所有可繪製到屏幕上的對象都是它的派生類
QCPAbstractItem 抽象類項,子類顯示一些特殊的圖形,比如圖片QCPItemPixmap、文字QCPItemText、可加入箭頭的直線QCPItemLine等等
QCPAbstractPlotable 可繪製的圖抽象類,子類用來顯示數據系列的圖形,例如柱狀圖QCPBars、曲線QCPGraph、弧線QCPCurse、統計學箱QCPStatisticalBox
QCpLayoutElement 可佈局元素
我們可將QCustomPlot 當做一個二維圖表,一個繪圖板的類,它繼承自QWidget
設置圖例位置
pCustomPlot->axisRect()->insetLayout()->setInsetAlignment(0,Qt::AlignLeft | QAlignTop);
pCustomPlot->legend->addElement(row,col,pCustomPlot->legend->item(1));
pCustomPlot->plotLayout->addElement(count,0,pCustomPlot->legend);
pCustomPlot->plotLayout->setRowStretchFactor(count,0.001);
設置X軸、Y軸顏色
pCustomPlot->xAxis->setBasePen(QColor(255,0,0));
pCcustomPlot->yAxis->setBasePen(QColor(255,0,0));
設置Tick顏色
pCustomPlot->xAxis->setTickPen(QColor(255,0,0));
pCustomPlot->yAxis->setSubTickPen(QPen(Qt::blue));
設置tick在座標軸裏面和外部的長度
pCustomPlot->xAxis->setTickLength(30,15); //裏30px 外15px
設置座標軸tick提示文字顏色
pCustomPlot->xAxis->setTickLabelColor(QColor(Qt::red));
設置X軸網格的顏色
pCustomPlot->xAxis->grid()->setPen(QPen(Qt::red));
設置座標軸尾端箭頭
pCustomPlot->xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
設置座標軸上小刻度和箭頭顏色(兩個只能同時設置)
pCustomPlot->yAxis->setSubTickPen(QPen(Qt::red));
設置整個區域繪圖顏色
pCustomPlot->setBackground(backRole);
設置座標軸區域的顏色
pCustomPlot->axisRect()->setBackground(Qt::red);