QT绘图控件QCustomPlot快速入门(二)

QT绘图控件QCustomPlot快速入门(二)

进一步学习QCustomPlot的使用需要参考其帮助文档及官方示例
QCustomPlot源代码中包含其帮助文档,如下所示:
在这里插入图片描述
在QtCreator中可以按照下述步骤添加帮助文档
在这里插入图片描述添加曲线的拖拽等操作:


    //设置曲线的特性:支持鼠标拖拽、图层缩放、鼠标左键选择图层
    MQCustomPlot->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom | QCP::iSelectPlottables);

添加柱状图的绘制功能:

//绘制柱状图
void Widget::on_Button_Bars_clicked()
{
    //柱状图的X.Y坐标
    QCPAxis *xAxis=MQCustomPlot->xAxis;
    QCPAxis *yAxis=MQCustomPlot->yAxis;
    QCPBars *bars=new QCPBars(xAxis,yAxis);
    bars->setAntialiased(true);   //设置抗锯齿
    bars->setName("柱状图示例");
    bars->setVisible(true);
    //设置画笔和画刷
    bars->setPen(QPen(Qt::blue));
    bars->setBrush(QBrush(QColor(210,255,255)));
    //柱状图坐标轴刻度范围与文字
    QVector<double>ticks;
    QVector<QString>labels;
    ticks<<1<<2<<3<<4<<5;
    labels<<"小明"<<"小红"<<"张三"<<"李四"<<"小舞";
    QSharedPointer<QCPAxisTickerText> tickerText(new QCPAxisTickerText);
    tickerText->addTicks(ticks,labels);
    xAxis->setTicker(tickerText); //设置坐标轴文字
    xAxis->setTickLabelRotation(60); //设置坐标轴文字旋转
    xAxis->setSubTicks(false);  //不显示子刻度
    xAxis->setRange(0,6);
    xAxis->setLabel("学生姓名");
    xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);

    yAxis->setRange(0,150); //设置y轴范围
    yAxis->setPadding(35);  //设置y轴内边距
    yAxis->setLabel("学习成绩");
    yAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);
    QVector<double>dataNum;
    dataNum<<95<<87<<86<<84<<49;
    bars->setData(ticks,dataNum);  //给柱状图设置值
    MQCustomPlot->replot();
}

添加自动调整坐标轴的功能:

//根据曲线自适应调整坐标
void Widget::on_Button_AutoScale_clicked()
{
    MQCustomPlot->rescaleAxes();
    MQCustomPlot->replot();
}

效果展示:
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值