QCustomPlot的基础参考此作者的文章
https://blog.csdn.net/qq_40194498/article/details/79666903
关于QCustomPlot的坑
- 在pro文件中加入,如果没有加入printsupport,编译将会报错!
QT += printsupport
- 可重载源文件函数,实现更多功能
项目要求:
- 以时间为X轴,不断更新
- Y轴为数据
- 可选择显示的数据
- 数据观测,可暂停滚动,Y轴区间变化
- Qt5.9.3 + QCustomPlot,QWidget项目
效果图:
做了一个小Demo,还在测试中,之后新加的功能再上传
源码连接:
https://download.csdn.net/download/qq_38159549/12288853
关于QCustomPlot绘图
1、通过addGraph即可添加一个曲线图层,此函数返回这个曲线图层的指针,或者通过曲线索引来找到,所有添加的曲线都放置在一个list里面,如果是第一个添加的,那么索引就是0了,
customPlot->graph(0)
2、使用setName和name函数分别设置和获取曲线的名字
添加完曲线即可对这个曲线设置数据,QCustomPlot用于绘制趋势图非常方便
直接使用函数setData即可设置数据
void setData(QCPDataMap*data, bool copy=false)
void setData (const QVector<double > &key, const QVector<double > &value)
只要有个x,y等长度的vector数据即可轻松绘图
也可以追加数据
void addData (const QCPDataMap&dataMap)
void addData (const QCPData&data)
void addData (double key,double value)
void addData (const QVector<double > &keys, const QVector<double >&values)
3、设置完数据后可以对x,y轴进行设置
customPlot->xAxis->setLabel("x");
customPlot->yAxis->setLabel("y");
或者设置x,y轴的范围
customPlot->xAxis->setRange(-1,1);
customPlot->yAxis->setRange(0,1);
QCustomPlot::rescaleAxes()函数,它会自动设置最合适的显示范围,非常简便。
设置完成后即可显示图像
使用QCustomPlot::replot函数使图像进行重绘,show函数也会触发重绘事件。