Qt:QCustomPlot使⽤教程(⼆)——基本绘图0、说明本节翻译总结⾃:本节内容是使⽤QCustomPlot进⾏基本绘图。
本节教程都使⽤customPlot这个变量,它是⼀个指向QCustomPlot实例的指针,当然,在我们的项⽬中,我们更可能是通过ui->customPlot来访问这些QCustomPlot实例。
1、基本⽤法1.1、创建新画布customPlot -> addGraph();每个Graph及其上的线构成⼀幅图。
1.2、给画布分配数据点customPlot->graph(0)->setData(x,y)x、y是⼤⼩相等的⼀组数据,其中x中存储的是横坐标,y中存储的是纵坐标。
1.3、轴假设我们有两个QVector<double>,分别存放了⼀组点的x和y坐标(Key与Value)。
不过QCustomPlot更倾向于使⽤Key与Value⽽⾮x与y,这样可以更灵活地区分哪个轴具有什么样的功能。
所以当我们定义左边轴为Key轴⽽底部轴为Value轴时,我们就可以沿着左边的轴绘制⼀幅直⽴的图。
QCustomPlot有4个轴customPlot->xAxis, yAxis, xAxis2, 和 yAxis2,它们都是QCPAxis类型的,分别对应下、左、上、右。
如果要设置轴的范围为(-1,1),可以⽤:customPlot->xAxis->setRange(-1,1);1.4、重绘如果对画布做了任何修改,可以⽤customPlot->replot();进⾏重绘。
不过每当Widget被拉伸或者触发了内置⽤户交互时,都会⾃动进⾏重绘;这⾥的交互是指通过⿏标拖动坐标轴的范围、⽤⿏标滚轮缩放等。
1.5、例⼦绘制⼀个y=x2的曲线:QVector<double> x(101),y(101);for(int i=0;i<101;i++){x[i]=i/50.0-1;//设置x的范围为-1~1y[i]=x[i]*x[i];}//创建画布,设置画布上的点数据ui->customPlot->addGraph();ui->customPlot->graph(0)->setData(x,y);//设置坐标轴标签ui->customPlot->xAxis->setLabel("x");ui->customPlot->yAxis->setLabel("y");//设置坐标轴范围,以便我们可以看到全部数据ui->customPlot->xAxis->setRange(-1,1);ui->customPlot->yAxis->setRange(0,1);ui->customPlot->replot();坐标轴刻度、间隔和显⽰的数字是由axis ticker决定的,它是QCPAxisTicker类型的变量,通过xAxis->ticker()访问。