Qt中绘制折线

Qt中绘制折线

基本流程
三要素:场景、图表、序列
创建场景—创建图表—图表添加到场景—创建序列—序列添加到图表
创建坐标轴并设置—坐标轴添加到图表—序列、坐标轴、图表配合
序列设值

1.必要配置
.pro文件

QT += charts

头文件

#include <QtCharts>

QT_CHARTS_USE_NAMESPACE
namespace Ui {
class MainWindow;
}

2.创建图表
有些类的对象是全局定义,如series,axisX,axisY

//创建ChartView——chartview:视图,chart:视图/图表
    QChart *chart = new QChart();
    chart->setTitle("正余弦函数图像");
    ui->chartView->setChart(chart);//将视图放入视图
    ui->chartView->setRenderHint(QPainter::Antialiasing);
//创建折线
    series0->setName("Sin曲线");
    series1->setName("Cos曲线");
    curSeries = series0;
    QPen pen;
    pen.setStyle(Qt::DotLine);
    pen.setWidth(2);
    pen.setColor(Qt::green);
    series0->setPen(pen);
    pen.setStyle(Qt::SolidLine);
    pen.setColor(Qt::red);
    series1->setPen(pen);
    chart->addSeries(series0);//将曲线添加到图表里
    chart->addSeries(series1);
//创建坐标轴
//    QValueAxis *axisX = new QValueAxis;
//    curAxis = axisX;
    axisX->setRange(0,10);//坐标轴范围
    axisX->setLabelFormat("%.1f");//标签格式,小数点后一位
    axisX->setTickCount(11);//主分格个数
    axisX->setMinorTickCount(4);//次分格个数
    axisX->setTitleText("time(secs)");//x轴标题
//    QValueAxis *axisY = new QValueAxis;
    axisY->setRange(-2,2);//坐标轴范围
    axisY->setLabelFormat("%.2f");//小数点后两位
    axisY->setTickCount(4);//主分格个数
    axisY->setTitleText("value");//y轴标题

    chart->setAxisX(axisX,series0);//曲线、图表、坐标轴匹配
    chart->setAxisY(axisY,series0);
    chart->setAxisX(axisX,series1);
    chart->setAxisY(axisY,series1);

3.设置序列值

    series0->clear();
    series1->clear();
    qreal t=0,y1,y2,intv=0.1;
    qreal rd;
    int cnt = 100;
    for(int i=0;i<cnt;i++)
    {
        rd = (qrand()%10)-5;//随机数-5到+5,qrand()%10:产生10以内的随机数
        y1 = qSin(t) - rd/20;
        series0->append(t,y1);//为曲线序列赋值
        y2 =qCos(t) + rd/20;
        series1->append(t,y2);
        t = t+intv;
    }

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值