当前位置: 首页 > news >正文

QT中使用图表之QChart绘制曲线图

步骤和绘制折线图一模一样,只不过使用的系列是曲线系列QSplineSeries

不过我们也可以不用自己来创建轴

而是先把曲线系列创建好并添加到图表中之后

---------------------------------------------------------------------------------------------------------------------------------

调用图表的createDefaultAxes()创建默认的坐标轴

他会根据图表中添加的系列创建不同的轴:(曲线系列属于QXYSeries)

---------------------------------------------------------------------------------------------------------------------------------

然后获取坐标轴,对坐标轴进行各种属性设置

将坐标轴附加到系列中

---------------------------------------------------------------------------------------------------------------------------------

详细步骤如下:

1、创建图表视图

QChartView* view=new QChartView(this);

2、创建图表

QChartView* view=new QChartView(this);

3、将图表设置给图表视图

view->setChart(chart);

 4、设置标题和图例的一些属性(可选)

chart -> setTitle("折线图");
chart -> legend() -> show(); //显示和隐藏图例(默认显示)
chart -> legend() -> setAlignment(Qt::AlignRight); //图例居右显示

5、创建曲线系列,给系列添加点,并将系列添加到图表中去

//添加曲线系列
QSplineSeries * spline = new QSplineSeries(this);
spline -> setColor(QColor(255, 0, 0)); //设置系列的颜色
spline -> setName("曲线系列"); //设置图例的名称
//给曲线系列添加点
spline -> append(0, 1200);
spline -> append(20, 1800);
spline -> append(30, 1400);
spline -> append(40, 1900);
spline -> append(60, 1300);
//把系列添加到QChart中
chart -> addSeries(spline);

6、创建默认的坐标轴(必须要在addSeries之后才能调用

//添加完系列之后创建默认的坐标轴,一定要在addSeries之后才能调用
chart->createDefaultAxes();

7、获取x轴 ,并设置相关属性

//获取x轴,就是水平的那一条轴,并设置一些属性
auto axisX = (QValueAxis * ) chart -> axes(Qt::Horizontal).at(0);
axisX -> setRange(0, 100); //设置范围
axisX -> setTickCount(11);

8、 获取y轴 ,并设置相关属性

//获取y轴,就竖直的那一条轴,并设置一些属性
auto axisY = (QValueAxis * ) chart -> axes(Qt::Vertical).at(0);
axisY -> setRange(1000, 2000); //设置范围
axisY -> setTickCount(11);

9、将轴附加到系列

//把轴附加到系列
spline->attachAxis(axisX);
spline->attachAxis(axisY);

完整代码如下:

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>#include<QtCharts>#include<QHBoxLayout>class Widget: public QWidget {Q_OBJECTpublic:Widget(QWidget * parent = nullptr): QWidget(parent) {resize(800, 600);QHBoxLayout * h_box = new QHBoxLayout(this);DrawSpLineSeries();}~Widget() =default;//画曲线void DrawSpLineSeries() {//1、创建视图QChartView * view = new QChartView(this);this -> layout() -> addWidget(view);//2.创建图表QChart * chart = new QChart();//将图表设置给图表视图view -> setChart(chart);//设置标题chart -> setTitle("折线图");chart -> legend() -> show(); //显示和隐藏图例(默认显示)chart -> legend() -> setAlignment(Qt::AlignRight); //图例居右显示//添加曲线系列QSplineSeries * spline = new QSplineSeries(this);spline -> setColor(QColor(255, 0, 0)); //设置系列的颜色spline -> setName("曲线系列"); //设置图例的名称//给曲线系列添加点spline -> append(0, 1200);spline -> append(20, 1800);spline -> append(30, 1400);spline -> append(40, 1900);spline -> append(60, 1300);//把系列添加到QChart中chart -> addSeries(spline);//添加完系列之后创建默认的坐标轴,一定要在addSeries之后才能调用chart -> createDefaultAxes();//获取x轴,就是水平的那一条轴,并设置一些属性auto axisX = (QValueAxis * ) chart -> axes(Qt::Horizontal).at(0);axisX -> setRange(0, 100); //设置范围axisX -> setTickCount(11);//获取y轴,就竖直的那一条轴,并设置一些属性auto axisY = (QValueAxis * ) chart -> axes(Qt::Vertical).at(0);axisY -> setRange(1000, 2000); //设置范围axisY -> setTickCount(11);//把轴附加到系列spline -> attachAxis(axisX);spline -> attachAxis(axisY);}
};
#endif // WIDGET_H

 

 

 


http://www.mrgr.cn/news/61337.html

相关文章:

  • vue2修改表单只提交被修改的数据的字段传给后端接口
  • 【Linux】深刻理解软硬链接
  • 高性能网络模式:Reactor 和 Proactor
  • Linux物理地址到虚拟地址的映射
  • 【Docker】入门教程
  • 【芯片封测学习专栏 -- D2D 和 C2C 之间的区别】
  • Sqoop的安装配置及使用
  • Coredump-A: 配置相关:suid_dumpable
  • 大数据新视界 -- 大数据大厂之大数据重塑影视娱乐产业的未来(4 - 3)
  • 深度学习:Overfitting 成因及解决策略
  • Diving into the HAL-----Interrupts
  • AutoDIR: Automatic All-in-One Image Restoration with Latent Diffusion论文阅读笔记
  • 线上Bug排查清单,测试小哥拿走不谢!
  • Docker快速安装Grafana
  • 2807. 在链表中插入最大公约数 辗转相除和BigDecimal自带求公约数实现
  • Docker Compose一键部署Spring Boot + Vue项目
  • IDEA使用Maven Helper查看整个项目的jar冲突
  • Javaee:单例模式
  • linux 查看磁盘和内存的使用情况
  • 大模型提示词简介 举例
  • VBA技术资料MF221:删除给定工作簿的指定模块
  • Java-I/O框架06:常见字符编码、字符流抽象类
  • 论文学习 | 《锂离子电池健康状态估计及剩余寿命预测研究》
  • DBeaver如何导出insert的sql数据
  • 配合数据库进行网页的动态数据上传
  • 四款图片编辑软件,P图更轻松