QT绘制曲线图 QCustomplot 的简单使用手册

//在项目中添加qcustomplot.h 与 qcustomplot.cpp,并在.pro文件中添加QT += widgets printsupport 这是因为qcustomplot基于图片输出功能
//头文件定义了QCustomPlot *m_QcustomPlot;
//头文件包含了#include “qcustomplot.h”
qcustomplot类CSDN下载链接
qcustomplot类官网下载地址

这里写图片描述

#include "mainwindow.h"
#include <QLayout>
#include <QVector>
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
{
        m_QcustomPlot = new QCustomPlot;

     //也可先用widget布局好后再加入
     setCentralWidget(m_QcustomPlot);

     //设置样式,拖拽、缩小、是否可选中
     m_QcustomPlot->setInteractions(QCP::iRangeDrag/*拖拽*/ | QCP::iRangeZoom/*缩小*/ | QCP::iSelectAxes |QCP::iSelectLegend | QCP::iSelectPlottables);
     m_QcustomPlot->axisRect()->setupFullAxesBox(false);//设置四周全轴框
     m_QcustomPlot->addGraph(); //添加曲线,每加入一条曲线需调用一次
     QVector<double> vecX, vecY;//横坐标值、纵坐标值
     vecX<<1<<2<<3<<4<<15;
     vecY<<1.3<<2<<3.1<<3.5<<6;
     m_QcustomPlot->graph(0)->setData(vecX, vecY);//在第一个权限中添加数据点

     //动态加点
     m_QcustomPlot->graph(0)->addData(19.7,  2.11);

     //设置标题, 必须先调用insertRow插入一行才能够显示
     m_QcustomPlot->plotLayout()->insertRow(0);

     QCPTextElement *title = new QCPTextElement(m_QcustomPlot, "身高体重标准对照表",   QFont("sans", 17, QFont::Bold));

     m_QcustomPlot->plotLayout()->addElement(0, 0, title);

     //设置颜色、线宽
     QPen graphPen;
     graphPen.setColor(QColor(rand()%245+10, rand()%245+10, rand()%245+10));//QColor::yellow()
     graphPen.setWidthF(rand()/(double)RAND_MAX*2+1);
     m_QcustomPlot->graph(0)->setPen(graphPen);

    //显示线介绍,默认右上角
     m_QcustomPlot->legend->setVisible(true);
     QFont legendFont = font();
     legendFont.setPointSize(10);
     m_QcustomPlot->legend->setFont(legendFont);
     m_QcustomPlot->legend->setSelectedFont(legendFont);
     m_QcustomPlot->legend->setSelectableParts(QCPLegend::spItems); // legend box shall not be selectable, only legend items

     //设置坐标名
     m_QcustomPlot->xAxis->setLabel("x 身高");
     m_QcustomPlot->yAxis->setLabel("y 体重");

     //重新调节轴、调用后坐标会根据实际情况增加
     m_QcustomPlot->rescaleAxes();

     //重新生成图表
     m_QcustomPlot->replot();
}


******************


MainWindow::~MainWindow()
{
}
  • 3
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在C++和Qt中,绘制曲线图可以使用Qt中的QCustomPlot库来实现。QCustomPlot是一个强大的绘图库,提供了丰富的绘图功能,包括曲线图、柱状图、散点图等。 要绘制曲线图,首先需要创建一个QCustomPlot对象,并将其添加到QWidget或QMainWindow上。然后,我们可以使用QCustomPlot的函数来设置图表的标题、坐标轴标签和范围等属性。 接下来,可以创建一个QCPGraph对象,用于绘制曲线。通过设置QCPGraph的数据和颜色等属性,可以完成曲线的绘制。我们可以使用QCustomPlot的函数来添加和删除曲线。 在绘制曲线之前,需要准备好曲线的数据。通常,我们可以将曲线的数据存储在一个Qt容器(如QVector)中,然后将其传递给QCPGraph的setData函数。 一旦准备好曲线的数据和属性,即可调用QCustomPlot的replot函数来重新绘制曲线图曲线图会根据传递给setData函数的数据自动更新和调整。 除了基本的曲线绘制外,QCustomPlot还提供了许多其他功能,如坐标轴刻度的设置、网格线的显示、多曲线的绘制等。通过研究QCustomPlot的文档和示例代码,可以更深入地了解和使用它的功能。 总之,使用C++和Qt绘制曲线图是相对简单的。通过使用QCustomPlot库,我们可以方便地实现曲线的绘制和操控。 ### 回答2: 在C++中使用Qt绘制曲线图可以通过QCustomPlot库来实现。以下是实现步骤: 1. 安装QCustomPlot库:将QCustomPlot的源代码添加到项目中,并在项目文件的.pro文件中添加库的引用。 2. 创建曲线图窗口:使用QMainWindow或QWidget派生类创建一个窗口用于显示曲线图。 3. 初始化曲线图:在窗口的构造函数中,创建一个QCustomPlot对象,并设置图表的标题、坐标轴等属性。 4. 添加数据:使用QVector保存曲线图的数据点,并将其添加到QCustomPlot对象中。 5. 绘制曲线图使用QCustomPlot的addGraph()方法创建曲线,并将数据点设置为曲线的坐标。 6. 设置曲线样式:使用QPen类设置曲线的颜色、线型等样式。 7. 显示曲线图使用QCustomPlot的replot()方法将曲线图绘制在窗口上。 8. 添加交互功能:如果需要,可以通过QCustomPlot的信号和槽机制,实现交互功能,例如缩放、平移等。 9. 更新曲线图:如果需要在运行期间更新曲线图,可以通过重新设置数据点的方式,再次调用replot()方法进行更新。 10. 清除曲线图:如果需要清除曲线图,可以调用QCustomPlot的clearGraphs()方法清除所有曲线。 总结:使用QtQCustomPlot库可以方便地绘制曲线图。通过初始化、添加数据、绘制曲线、设置样式、显示曲线、添加交互功能、更新和清除曲线等步骤,可以实现自定义的曲线图绘制。 ### 回答3: C++和Qt是一种常用的编程语言和开发工具,可以用于绘制曲线图Qt是一个跨平台的开发框架,具有丰富的功能和易用的API,可以轻松地绘制各种图形,包括曲线图。 要使用Qt绘制曲线图,首先需要创建一个窗口或视图来展示图形。可以使用Qt的窗口类(如QMainWindow、QWidget)或图形视图类(如QGraphicsView、QChartView)来创建一个可显示图形的界面。 然后,需要创建一个曲线图对象(如QLineSeries、QSplineSeries),并且添加数据点到曲线上。Qt提供了数据序列类来存储数据,以便绘制曲线图。可以使用append方法向序列对象中添加数据点。 接下来,需要创建一个图表对象(如QChart),将曲线图对象添加到图表中,并设置图表的样式和属性,如标题、坐标轴等。Qt提供了一系列的图表类,来帮助我们创建具有各种样式的图表。 最后,将图表对象添加到窗口或视图中,并显示出来。可以使用布局管理器(如QVBoxLayout、QGridLayout)将图表放置在窗口或视图中的合适位置,然后调用show()方法显示出来。 在绘制曲线图时,还可以根据需要自定义曲线的样式和属性,如线条颜色、线宽等。可以使用Qt的绘图API来绘制曲线,如设置笔(QPen)的颜色和宽度。 绘制曲线图是一个需要一定编程知识和经验的任务,但使用Qt可以简化这个过程,提供了丰富的功能和易用的API,使曲线图绘制变得容易和灵活。通过学习和熟悉Qt的绘图功能,我们可以更加方便地创建出漂亮的曲线图
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值