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();

运行截图

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/415257.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

element中表格组件的row-class-name和class-name属性的使用以及无效处理

1.这两个属性的使用&#xff0c;row-class-name用在el-table标签上&#xff0c;class-name用在el-table-column标签上。两个属性即可绑定类名也可绑定函数 <!-- 这里是绑定函数&#xff0c;也可以绑定类名 --> <el-table :data"tableData" selection-chang…

前端-基础 表格标签 总结

目录 表格的相关标签 &#xff1a; 表格的相关属性 合并单元格 &#xff1a; 表格的相关标签 &#xff1a; 表格标签 - <table> 行标签 - <tr> 单元格标签 - <td> 表头单元格标签 - <th> 表格结构标签 表头区域标签 - < thead >…

HarmonyOS NEXT鸿蒙星河版发布

1月18日,在深圳举行的“鸿蒙生态千帆启航仪式”上,华为常务董事、终端BG CEO余承东宣布HarmonyOS NEXT鸿蒙星河版面向开发者开放申请。鸿蒙星河版将实现原生精致、原生易用、原生流畅、原生安全、原生智能、原生互联6大极致原生体验。 并且,华为在 1 月 15 日开启了HarmonyO…

游戏云化好吗?游戏云化会带来什么?

随着云计算技术的飞速发展&#xff0c;游戏云化成为游戏产业中备受关注的话题。这一新兴技术给玩家和游戏行业带来了全新的可能性。本文将深入探讨游戏云化的概念、优势以及可能带来的影响。 1、什么是游戏云化&#xff1f; 游戏云化是指将游戏的各个环节&#xff0c;包括游戏…

如何使用Portainer部署web站点并实现无公网ip远程访问

文章目录 前言1. 安装Portainer1.1 访问Portainer Web界面 2. 使用Portainer创建Nginx容器3. 将Web静态站点实现公网访问4. 配置Web站点公网访问地址4.1公网访问Web站点 5. 固定Web静态站点公网地址6. 固定公网地址访问Web静态站点 前言 Portainer是一个开源的Docker轻量级可视…

用 Python 制作可视化 GUI 界面,一键实现自动分类管理文件!

经常杂乱无章的文件夹会让我们找不到所想要的文件&#xff0c;因此小编特意制作了一个可视化GUI界面&#xff0c;通过输入路径一键点击实现文件分门别类的归档。 不同的文件后缀归类为不同的类别 我们先罗列一下大致有几类文件&#xff0c;根据文件的后缀来设定&#xff0c;大…

大模型增强大模型:通过融合扩展能力(Google DeepMind2024)

1、写作动机&#xff1a; 存在如此多领域特定的模型自然引发一个问题&#xff1a;我们是否能够将一个固定模型与一个特定领域的增强模型组合&#xff0c;以实现新的能力&#xff1f;例如&#xff0c;我们是否可以将增强模型的代码理解能力与固定LLM的语言生成能力组合&#xf…

【单片机】STM32 ARM Cortex-M0 微控制器特性概述 双排 TSSOP封装好手工焊接的STM32芯片,双排

STM32F070CB STM32F070RB STM32F070C6 STM32F070F6 在嵌入式系统和物联网应用中&#xff0c;ARM Cortex-M0 微控制器以其强大的性能和丰富的功能而备受瞩目。本文将介绍该微控制器的主要特性&#xff0c;使读者更好地了解其适用范围和潜在应用。 核心特性 ARM 32位 Cortex…

Python爬虫---scrapy框架---当当网管道封装

项目结构&#xff1a; dang.py文件&#xff1a;自己创建&#xff0c;实现爬虫核心功能的文件 import scrapy from scrapy_dangdang_20240113.items import ScrapyDangdang20240113Itemclass DangSpider(scrapy.Spider):name "dang" # 名字# 如果是多页下载的话, …

C/C++ BM6判断链表中是否有环

文章目录 前言题目解决方案一1.1 思路阐述1.2 源码 解决方案二2.1 思路阐述2.2 源码 总结 前言 做了一堆单链表单指针的题目&#xff0c;这次是个双指针题&#xff0c;这里双指针的作用非常明显。 题目 判断给定的链表中是否有环。如果有环则返回true&#xff0c;否则返回fal…

kylin集群负载均衡(kylin3,hbaseRIF问题)

hbase历险记 目录 hbase历险记 寻找问题 分析原因 解决方案 方案1&#xff08;资源问题、失败&#xff09; 方案2&#xff08;成功&#xff09; 寻找问题 不知道你是不是有这样的疑惑。我kylin是个单机&#xff0c;我使用的hbase是个集群&#xff0c;但内存全在某一台机…

【b站咸虾米】chapter4_vue组件_新课uniapp零基础入门到项目打包(微信小程序/H5/vue/安卓apk)全掌握

课程地址&#xff1a;【新课uniapp零基础入门到项目打包&#xff08;微信小程序/H5/vue/安卓apk&#xff09;全掌握】 https://www.bilibili.com/video/BV1mT411K7nW/?p12&share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 四、vue组件 uni-app官网 …