QChart与QCustomPlot简单运用

QChart的使用

条件 :需要在.Pro文件添加QT += charts

四个头文件的作用
#include <QChart>   //类似于画笔
#include <QChartView>   //类似于画布
#include <QLineSeries>  // 类 Series 是用来添加数据的对象(可以理解为一个集合)
#include <QValueAxis>//用来自定义图表中的X,Y坐标轴
定义了五个对象
QChartView *chartView;
QChart *chart;
QLineSeries *lineSeries;
QValueAxis *axisX,*axisY;
代码如下
this->setCentralWidget(chartView);
lineSeries = new QLineSeries(chartView);    //QLineSeries用来存放数据
lineSeries->setPen(QPen(Qt::blue,1,Qt::SolidLine));//设置画笔
//添加数据
lineSeries->append(0,6);
lineSeries->append(2,4);
lineSeries->append(4,2);
lineSeries->append(6,8);
lineSeries->append(10,12);
lineSeries->append(12,6);
lineSeries->append(14,18);

chart->addSeries(lineSeries);
chart->setAnimationOptions(QChart::SeriesAnimations);

axisX = new QValueAxis; //定义X轴
axisX->setRange(0, 20); //设置范围
axisX->setLabelFormat("%g"); //设置刻度的格式
axisX->setTitleText("X Axis"); //设置X轴的标题
axisX->setGridLineVisible(true); //设置是否显示网格线
axisX->setMinorTickCount(4); //设置小刻度线的数目
 
// axisX->setLabelsVisible(false); //设置刻度是否显示
 axisY = new QValueAxis;
 axisY->setRange(0, 20);
 axisY->setTitleText("Y Axis");
 axisY->setLabelFormat("%.2f");
 axisY->setGridLineVisible(true);
 chart->setAxisX(axisX, lineSeries);
 chart->setAxisY(axisY, lineSeries);
 chart->legend()->hide();
效果

在这里插入图片描述

QCustoPlot的使用

1 .只需要把qcustomplot.cpp和qcustomplot.h拷贝到工程目录下,然后把这两个文件引入工程项目即可,同时在.pro文件添加QT += widgets printsupport 2. 它继承于Widget,界面中的Widget类提升为QCustomPlot才能够绘图。

步骤

1.建立qt项目,添加qustomplot.h与qustomplot.cpp文件,并在pro工程 QT += widgets printsupport

2.从ui拖一个widget控件,并提升为QCustomPlot

3.建立QCustomPlot对象并操作

代码如下
QCustomPlot *p = ui->widget;

p->setInteractions(QCP::iRangeDrag | QCP::iRangeZoom);   //可拖拽+可滚轮缩放

p->legend->setVisible(true);                              //显示图例
p->xAxis->setLabel(QStringLiteral("X轴文字"));          //X轴文字显示
p->yAxis->setLabel(QStringLiteral("Y轴文字"));          //Y轴文字显示

p->xAxis->setRange(0, 100);                         //当前X轴显示的范围
p->yAxis->setRange(0, 10);                          //当前Y轴显示的范围

p->addGraph();                              //向绘图区域QCustomPlot添加一条曲线
p->graph(0)->setPen(QPen(Qt::red));                //绘制曲线0的画刷颜色为红色
//绘制的曲线轨迹
for (int i = 0; i<100; i++)
{
    p->graph(0)->addData(i, i % 10);
}
效果

在这里插入图片描述

  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: qchart、qcustomplot和qwt都是用于绘制图表的Qt库。 qchart是Qt自带的图表库,可以绘制基本的线图、柱状图、饼图等,支持交互和动画效果。 qcustomplot是一个第三方的Qt图表库,提供了更多的图表类型和自定义功能,可以绘制高级的科学图表、统计图表等。 qwt也是一个第三方的Qt图表库,提供了更多的图表类型和自定义功能,可以绘制高级的科学图表、统计图表等,同时还提供了数据采集、处理和显示的功能。 总的来说,qchart是最基础的图表库,qcustomplot和qwt则提供了更多的功能和灵活性。选择哪个库取决于具体的需求和使用场景。 ### 回答2: QChart、QCustomPlot和Qwt都是在Qt平台上开发的图表绘制库,主要用于绘制各种类型的图表。它们之间的区别在以下几个方面: 一、功能方面: 1.QChart是QT公司自家的图表绘制库,从Qt5开始推出。它提供了基本的图表类型(如折线图、柱状图、饼图等)和一些高级特性(如图例、坐标轴、标签等)。 2.QCustomPlot是一个第三方的开源库,功能比较全面,可以绘制各种类型的图表(如散点图、波形图、色彩映射图等),同时也提供了许多高级特性(如拖动、选中、缩放等)。 3.Qwt也是一个第三方的开源库,在绘图上比QChart和QCustomPlot的功能更加强大,可以绘制各种类型的图表(如XY、极坐标、3D图等)和符号(如线条、曲线、点、箭头等)。 二、易用性方面: 1.QChart使用简单,提供了使用QPainter绘制的图形元素。但它的图表类型较为基础,不支持自定义图形元素的绘制。 2.QCustomPlot在使用中需要掌握一些基本的绘图技能,但它提供了大量的示例代码和丰富的文档,使得开发过程更加便利。 3.Qwt的使用一般需要掌握更加高级的技能,需要花费比较长的时间来学习它的使用,但是一旦熟练掌握后,可以方便地绘制各种类型的图表和符号。 三、绘图质量方面: 1.QChart的图表绘图质量较好,能够绘制出较为清晰的图表。 2.QCustomPlot绘图质量相当高,在绘制曲线图和等高线图等高级图形时具有很好的优势。 3.Qwt是最优秀的绘图库之一,绘图质量较高,几乎可以绘制所有关于图表方面的图形。 综上所述,对于初学者而言,QChart是最好的选择。对于有一定绘图基础和对图表掌握较好的开发者而言,QCustomPlot和Qwt都是不错的选择,但由于Qwt使用较为复杂,所以QCustomPlot比较适合入门和快速开发。 ### 回答3: QChart、QCustomPlot和Qwt都是用于Qt图形绘制的库,但它们有不同的设计理念和使用方式。 首先,QChart是Qt自带的图表绘制类,使用简单且易于学习,它提供了基本的图表类型和样式、数据系列管理、坐标轴管理等功能。在Qt 5.7以前,QChart只支持使用QChartView进行渲染展示,无法直接使用QWidget或QGraphicsView,但在后来的版本中,QChart已经支持了更多的展示方式。QChart适合于简单的数据可视化和快速开发。 其次,QCustomPlot是一个开源的C++绘图库,它提供了丰富的绘图类型和高度定制的展示方式。QCustomPlot的设计思想是,将绘图和界面分离,通过自定义绘图对象、图层管理、绘图数据管理、坐标轴管理等方式,实现高度自由的数据可视化。QCustomPlot的使用复杂度相对较高,需要熟悉C++和Qt的相关开发技术,但是可以实现非常复杂的数据展示效果。 最后,Qwt是一个面向科学和工程领域的开源C++图表库,它提供了广泛的图表类型和丰富的展示选项。与QCustomPlot类似,Qwt的设计思想是将图形展示与数据分离,通过自定义绘图对象、数据管理、坐标轴管理等方式,支持高度自由的展示效果。Qwt也需要熟悉C++和Qt的开发技术,但是它更加适合于科学计算等领域。 总之,QChart、QCustomPlot和Qwt都是非常优秀的Qt图表库,它们的使用适合不同的场景和需求,选择合适的库可以有效地提高开发效率和数据展示效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值