2021-05-25

QCustomPlot使用技巧(一)

一、QCustomPlot坐标轴

一个QCustomPlot里有四个坐标轴,其中xAxis、yAxis、xAxis2和yAxis2分别表示如图所示的4个方向的坐标轴,xAxis2和yAxis2默认隐藏,可以通过语句显示出来。

 yAxis2->setVisible(true);    //显示y轴2   即右侧坐标轴
 xAxis2->setVisible(true);    //显示x轴2   即上方坐标轴

2021-05-25
下面是坐标轴的常用操作,每一个坐标轴都可单独设置。

	xAxis->setBasePen(QPen(QColor(0, 163, 222)));                        		//x轴线
    xAxis->setLabelColor(Qt::black);                                            //设置字体
    xAxis->grid()->setPen(QPen(QColor("#159C77"), 1, Qt::DotLine));            	//x中间的水平线
    xAxis->setTickLabelColor(Qt::black);                                        //x标号
    xAxis->setTickPen(QPen(QColor("#159C77")));                            		//x大分割
    xAxis->setLabel(QStringLiteral("时间"));									//文字
    xAxis->setSubTickPen(QPen(QColor("#159C77")));                        		//x小分割
    xAxis->setSubTickLength(0);
    xAxis->setSubTicks(false);													//x小分割不显示
    xAxis->setTickLabelFont(QFont("", 10));
    xAxis->setRange(QCPRange(0, 50));                                           //x轴范围
    xAxis->ticker()->setTickCount(50);											//x轴有多少个点
    xAxis->ticker()->setTickStepStrategy(QCPAxisTicker::tssReadability);
    xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
    xAxis->rescale(true);														//设置自动缩放

如果需要设置x轴为时间显示

//x轴时间设置
QDateTime date_time = QDateTime::currentDateTime();
double now = date_time.toMSecsSinceEpoch();
QSharedPointer<QCPAxisTickerDateTime> dateTimeTicker(new QCPAxisTickerDateTime);//dateTimeTicker->setDateTimeSpec(Qt::UTC);//设施世界时间,即不加上时区的时间
dateTimeTicker->setTickCount(20);
dateTimeTicker->setTickStepStrategy(QCPAxisTicker::tssMeetTickCount);
dateTimeTicker->setDateTimeFormat("d h:m");//设置x轴刻度显示格式
ui.plot_->xAxis->setTicker(dateTimeTicker);
ui.plot_->xAxis->setRange((now - 3600)*0.001, now*0.001);
ui.plot_->xAxis->setTickLabelRotation(30);

二、QCPGraph对象

QCustomPlot中的每一个曲线是一个QCPGraph对象,凡是跟显示数据有关的我们就对QCPGraph进行操作或调用QCPGraph对象提供的方法。可以使用该语句创建一个QCPGraph对象

QCPGraph *graph = ui.plot_->addGraph();

创建的的QCPGraph会存储在QCustomPlot内,使用graph(i)及和返回。

ui.plot_->graph(i)

下面是QCPGraph的常用设置

setLineStyle(LineStyle ls);			//设置线条
setData(x,y);									//添加数据
setData(const QVector<double> &keys, const QVector<double> &values, bool alreadySorted=false);//添加数据容器
上一篇:windows常用快捷键与快捷指令


下一篇:Echarts 横轴标记线的实现