QCustomplot笔记(一)之QCustomplot添加数据以及曲线

104 篇文章 128 订阅

一.前言
楼主最近在学习QCustomplot相关的内容,于是想着记录下自己所学的,同时也给分享给有需要的人
楼主所涉及不深,也不一定描述的对,不喜勿喷。谢谢

二.过程
1.拖动一个QWidget,提示为QCustomplot
在这里插入图片描述
2.编写代码

    // 数据构造
    QVector<double> x,y;
    for(double xi=-2*M_PI;xi<2*M_PI;xi+=0.1)
    {
        x.push_back(xi);
        y.push_back(sin(xi));
    }

    //添加曲线,必须添加这一句,不然显示不了曲线
    ui->widget->addGraph();

    // 设置x轴以及y轴的名称
    ui->widget->xAxis->setLabel("这是X轴");
    ui->widget->yAxis->setLabel("这是Y轴");

    // 设置数据
    ui->widget->graph(0)->setData(x,y);

    // 设置曲线名称
    ui->widget->graph(0)->setName("y=sin(x)");

    // 设置显示曲线名称
    ui->widget->legend->setVisible(true);

    // 设置曲线名称的字体属性
    ui->widget->legend->setFont(QFont("微软雅黑",13));

    // 设置自适应
     ui->widget->rescaleAxes(true);

在这里插入图片描述
3.添加多组数据,添加多组数据和添加单组数据一样,感觉这样添加很方便,QCustomplot的作者真是一个牛人

// 数据构造
    QVector<double> x,y;
    for(double xi=-2*M_PI;xi<2*M_PI;xi+=0.1)
    {
        x.push_back(xi);
        y.push_back(sin(xi));
    }

    //添加曲线,必须添加这一句,不然显示不了曲线
    ui->widget->addGraph();

    // 设置x轴以及y轴的名称
    ui->widget->xAxis->setLabel("这是X轴");
    ui->widget->yAxis->setLabel("这是Y轴");

    // 设置数据
    ui->widget->graph(0)->setData(x,y);

    // 设置曲线名称
    ui->widget->graph(0)->setName("y=sin(x)");

    // 设置显示曲线名称
    ui->widget->legend->setVisible(true);

    // 设置曲线名称的字体属性
    ui->widget->legend->setFont(QFont("微软雅黑",13));

    // 设置自适应


    QVector<double> x1,y1;
    for(double xx=-2*M_PI;xx<2*M_PI;xx+=0.1)
    {
        x1.push_back(xx);
        y1.push_back(cos(xx));
    }

    //
    QPen pen;
    pen.setWidth(3);
    pen.setColor(Qt::green);

    ui->widget->addGraph();
    // 设置曲线颜色
    ui->widget->graph(1)->setPen(pen);

    ui->widget->graph(1)->setData(x1,y1);
    ui->widget->graph(1)->setName("y=cos(x)");
    ui->widget->rescaleAxes(true);

    //
    QPen pen3;
    pen3.setWidth(3);
    pen3.setColor(Qt::yellow);
    ui->widget->addGraph();
    QVector<double> x2,y2;
    for(int i=0;i<10;i++)
    {
        x2.push_back(i);
        y2.push_back(i);
    }
    ui->widget->graph(2)->setPen(pen3);
    ui->widget->graph(2)->setData(x2,y2);
    ui->widget->graph(2)->setName("y=x");


    // 添加多组数据的时候,这一句必须放在最后,才能实现坐标轴的自适应
    ui->widget->rescaleAxes(true);

在这里插入图片描述

QCustomPlot是一款强大的Qt C++图表库,它允许你在应用程序中创建各种定制化的图表。如果你想在QCustomPlot添加图片,可以按照以下步骤操作: 1. **包含所需头文件**: 首先,在你的代码中包含`qcpimage.h`和`qpainter.h`,这两个头文件分别用于处理图像数据和绘制图像。 ```cpp #include <qcustomplot/qcustomplot.h> #include <qcustomplot/qcpiimage.h> #include <qpainter.h> ``` 2. **加载图片数据**: 使用`QCImage`类从文件或内存中读取图片。例如,从文件加载: ```cpp QCImage image("path_to_your_image.jpg"); ``` 3. **设置图像到绘图区**: 创建一个`QCPImageItem`并将其关联到特定的轴上。如果你想要在整个绘图区显示图片,可以创建全局的`QCPImageItem`,或者直接画到绘图区(`QCPGraph`)上。 ```cpp // 如果需要在特定轴上显示 QCPAxis *axis = customPlot->xAxis(); // 假设我们使用X轴 QCPImageItem *imageItem = new QCPImageItem(image); axis->addItem(imageItem); // 或者在绘图区显示 QCPImageItem *globalImageItem = new QCPImageItem(image); customPlot->addGraph()->setBackgroundImage(globalImageItem); ``` 4. **调整大小和位置**: 可能需要调整图像的大小以适应绘图区域,你可以使用`setGeometry()`或`resizeImage()`方法。 5. **绘制**: 最后,记得在`QCustomPlot`的布局更改、窗口大小调整或其他需要更新图形的地方,调用`updateGraphs()`或`repaint()`方法来刷新图像。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值