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

QCustomPlot绘制柱状图,折线图

柱状图绘制

// 创建QCustomPlot对象QCustomPlot customPlot;// 创建柱状图数据QVector<double> xData = { 1, 2, 3, 4, 5 };QVector<double> yData = { 3, 6, 2, 7, 4 };// 创建柱状图数据容器QCPBars *bars = new QCPBars(customPlot.xAxis, customPlot.yAxis);bars->setData(xData, yData);//为柱状图设置一个文字类型的key轴,ticks决定了轴的范围,而labels决定了轴的刻度文字的显示QVector<double> ticks;QVector<QString> labels;ticks << 1 << 2 << 3 << 4 << 5 ;labels << "2001" << "2002" << "2003" << "2004" << "2005" ;QSharedPointer<QCPAxisTickerText> textTicker(new QCPAxisTickerText);textTicker->addTicks(ticks, labels);customPlot.xAxis->setTicker(textTicker); // 设置为文字轴customPlot.xAxis->setTickLabelRotation(60);     // 轴刻度文字旋转60度customPlot.xAxis->setSubTicks(false);           // 不显示子刻度customPlot.xAxis->setTickLength(0, 4);          // 轴内外刻度的长度分别是0,4,也就是轴内的刻度线不显示customPlot.xAxis->setRange(0, 6);               // 设置范围customPlot.xAxis->setUpperEnding(QCPLineEnding::esSpikeArrow);bars->setWidth(0.4);// 设置柱状图样式bars->setBrush(QColor(0, 168, 140));  // 设置柱状图颜色// 设置坐标轴范围和标签customPlot.xAxis->setLabel("X");customPlot.yAxis->setLabel("Y");customPlot.xAxis->setRange(0.5, 5.5);  // X轴范围从0.5到5.5customPlot.yAxis->setRange(0, 8);  // Y轴范围从0到8// 显示图表窗口customPlot.show();

如图所示
代码结果

多组柱状图

// 创建QCustomPlot对象件QCustomPlot* customPlot = new QCustomPlot();customPlot->resize(400, 400);// 创建柱状图数据QVector<double> xData = { 1, 2, 3, 4, 5 };QVector<double> yData = { 10, 20, 30, 40, 50 };// 创建柱状图QCPBars* bars1= new QCPBars(customPlot->xAxis, customPlot->yAxis);QCPBars* bars2 = new QCPBars(customPlot->xAxis, customPlot->yAxis);QCPBarsGroup* group = new QCPBarsGroup(customPlot);bars1->setWidth(bars1->width() / 2);bars2->setWidth(bars2->width() / 2);group->append(bars1);group->append(bars2);bars1->setData(xData, yData);bars2->setData(xData, yData);// 设置柱状图样式QPen pen;pen.setWidthF(1);bars1->setPen(pen);bars1->setBrush(QColor(100, 149, 237));bars2->setPen(pen);bars2->setBrush(QColor(100, 149, 237));// 设置坐标轴范围customPlot->xAxis->setRange(0.5, 5.5);customPlot->yAxis->setRange(0, 60);// 显示图表customPlot->replot();customPlot->show();

如图所示:
代码运行图

折线图绘制

	// 创建QCustomPlot对象QCustomPlot customPlot;// 创建折线图数据QVector<double> xData = { 1, 2, 3, 4, 5 };QVector<double> yData = { 3, 6, 2, 7, 4 };// 创建折线图数据容器customPlot.addGraph();customPlot.graph(0)->setData(xData, yData);// 设置折线图样式customPlot.graph(0)->setLineStyle(QCPGraph::lsLine);       // 设置线条风格为实线customPlot.graph(0)->setScatterStyle(QCPScatterStyle::ssCircle);  // 设置散点风格为圆形// 设置坐标轴范围和标签customPlot.xAxis->setLabel("X");customPlot.yAxis->setLabel("Y");customPlot.xAxis->setRange(0.5, 5.5);  // X轴范围从0.5到5.5customPlot.yAxis->setRange(0, 8);  // Y轴范围从0到8// 显示图表窗口customPlot.show();

运行截图

相关文章:

  • Chrome 开发者工具
  • 设计模式——中介者模式
  • Docker 仓库管理
  • etcd v3用户权限操作
  • 基于FPGA的万兆以太网学习(1)
  • openssl3.2 - 官方demo学习 - mac - siphash.c
  • 垃圾收集器G1ZGC详解
  • x-www-form-urlencoded接收方式代码示例
  • Nodejs 问题排查
  • openssl3.2 - 官方demo学习 - smime - smdec.c
  • Angular系列教程之观察者模式和RxJS
  • 【备战蓝桥杯】图的遍历问题
  • openssl3.2 - 官方demo学习 - smime - smsign2.c
  • JavaEE之多线程编程:3. 线程的状态(易懂!)
  • 【项目搭建二】SpringBoot引入druid、mybatis、mybatisPlus
  • CSS 专业技巧
  • exif信息对照
  • express如何解决request entity too large问题
  • iOS编译提示和导航提示
  • Java教程_软件开发基础
  • MySQL的数据类型
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • vue-cli3搭建项目
  • XML已死 ?
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从@property说起(二)当我们写下@property (nonatomic, weak) id obj时,我们究竟写了什么...
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 回顾 Swift 多平台移植进度 #2
  • 基于HAProxy的高性能缓存服务器nuster
  • 开源地图数据可视化库——mapnik
  • 使用Tinker来调试Laravel应用程序的数据以及使用Tinker一些总结
  • 腾讯优测优分享 | Android碎片化问题小结——关于闪光灯的那些事儿
  • 鱼骨图 - 如何绘制?
  • 正则表达式
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • ​软考-高级-系统架构设计师教程(清华第2版)【第12章 信息系统架构设计理论与实践(P420~465)-思维导图】​
  • #NOIP 2014#day.2 T1 无限网络发射器选址
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (env: Windows,mp,1.06.2308310; lib: 3.2.4) uniapp微信小程序
  • (floyd+补集) poj 3275
  • (HAL库版)freeRTOS移植STMF103
  • (java)关于Thread的挂起和恢复
  • (Redis使用系列) Springboot 使用Redis+Session实现Session共享 ,简单的单点登录 五
  • (二十五)admin-boot项目之集成消息队列Rabbitmq
  • (附源码)计算机毕业设计SSM疫情下的学生出入管理系统
  • (转)程序员技术练级攻略
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (转载)hibernate缓存
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • ***检测工具之RKHunter AIDE
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地定义和使用弱事件
  • .NET4.0并行计算技术基础(1)
  • .net分布式压力测试工具(Beetle.DT)
  • @column注解_MyBatis注解开发 -MyBatis(15)
  • @FeignClient 调用另一个服务的test环境,实际上却调用了另一个环境testone的接口,这其中牵扯到k8s容器外容器内的问题,注册到eureka上的是容器外的旧版本...