一向楼、前言
QCustomPlot是Qt的一個(gè)小型第三方圖表庫,支持靜態(tài)/動(dòng)態(tài)曲線谐区、柱狀圖湖蜕、蠟燭圖、頻譜圖等宋列。使用方便昭抒,僅需在項(xiàng)目中加入頭文件qcustomplot.h和qcustomplot.cpp源文件即可,或者把它當(dāng)做一個(gè)庫來添加到項(xiàng)目當(dāng)中,需要在pro文件加入 DEFINES += QCUSTOMPLOT_COMPILE_LIBRARY
下載地址:https://www.qcustomplot.com/index.php/download
二炼杖、簡單介紹QCustomPlot的幾個(gè)重要類
- QCustomPlot 圖表類:用于圖表的顯示和交互
- QCPLayer 圖層:管理圖層元素(QCPLayerable)灭返,所有可顯示的對(duì)象都是繼承自圖層元素
- QCPAbstractPlottable 繪圖元素:包含 折線圖(QCPGraph)、曲線圖(QCPCurve)坤邪、柱狀圖(QCPBars)熙含、QCPStatiBox(盒子圖)、QCPColorMap(色譜圖)艇纺、QCPFinancial(金融圖)
- QCPAxisRect 坐標(biāo)軸矩形:一個(gè)坐標(biāo)軸矩形默認(rèn)包含上下左右四個(gè)坐標(biāo)軸怎静,但是可以添加多個(gè)坐標(biāo)軸
三、簡單介紹QCustomPlot類
QCustomPlot類管理著所有的圖層黔衡,它默認(rèn)自帶了六個(gè)圖層蚓聘,分別是:
- 背景層
background
- 網(wǎng)格層
grid
- 繪圖層
main
- 坐標(biāo)軸層
axes
- 圖例層
legend
- overlay層
overlay
依據(jù)層的順序的不同,繪制的順序也不同盟劫,越在底下的層越早繪制夜牡,當(dāng)前層默認(rèn)為繪圖層main
而我們的繪圖區(qū)域則在QCPAxisRect中,QCustomPlot類默認(rèn)包含一個(gè)QCPAxisRect侣签,我們可以在下圖中可以看到一個(gè)QCPAxisRect一般來說會(huì)有上軸xAxis2
氯材、下軸xAxis
渣锦、左軸yAxis
和右軸yAxis2
四個(gè)軸
QCPAxisRect和QCPAxis的關(guān)系圖
四、簡單使用
我們以官方的一個(gè)簡單示例來結(jié)束這篇
void MainWindow::setupQuadraticDemo(QCustomPlot *customPlot)
{
QVector<double> x(101), y(101);
for (int i = 0; i < 101; ++i) {
x[i] = i / 50.0 - 1; // -1 到 1
y[i] = x[i] * x[i];
}
customPlot->addGraph(); // 添加一個(gè)曲線圖QGraph
customPlot->graph(0)->setData(x, y); // 為曲線圖添加數(shù)據(jù)
customPlot->graph(0)->setName("第一個(gè)示例"); // 設(shè)置曲線圖的名字
customPlot->xAxis->setLabel("x"); // 設(shè)置x軸的標(biāo)簽
customPlot->yAxis->setLabel("y");
customPlot->xAxis->setRange(-1, 1); // 設(shè)置x軸的范圍為(-1,1)
customPlot->yAxis->setRange(0, 1);
customPlot->legend->setVisible(true); // 顯示圖例
}
效果圖
demo1.png