QCustomPlot繪圖工具常用方法

添加一條曲線

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);

 

發佈了48 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章