城市直播房产教育博客汽车
投稿投诉
汽车报价
买车新车
博客专栏
专题精品
教育留学
高考读书
房产家居
彩票视频
直播黑猫
投资微博
城市上海
政务旅游

QCustomplot使用分享源码解读

12月20日 萌嘟嘟投稿
  一、头文件概述
  从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码的同学可以自己去QCustomPlot的目录下documentationqcustomplot下寻找一个名字叫做index。html的文件,将其在浏览器中打开,也是可以找到这个库的类图。如图1所示,是组成一个QCustomPlot类图的可能组成形式。一个图表(QCustomPlot):包含一个或者多个图层、一个或多个item(用于展示一些固定的元素,例如文本、线段等)、一个或者多个可以绘制的元素、一个布局一个图层(QCPLayer):包含基本的元素(QCPLayerable)一个QCPAbstractItem:包含一个或者多个位置信息一个坐标轴矩形(QCPAxisRect):包含多个坐标轴、有一个图例类(多个图例项)
  图1图表组成
  在一个QCustomPlot类图中最重要、用的最多的是QCPLayerable元素,几乎除了QCPLayer以外的元素都是继承于该类。QCPAbstractPlottable:绘图元素,包含:折线图(QCPGraph)、曲线图(QCPCurve)、柱状图(QCPBars)、QCPStatiBox(盒子图)、QCPColorMap(色谱图)、QCPFinancial(金融图)QCPAbstractItem:标示项,包含:直线(QCPItemStraightLine)、线段(QCPItemLine)、曲线(QCPItemCurve)、矩形(QCPItemRect)、椭圆(QCPItemEllipse)、文本(QCPItemText)、小圆球(QCPItemTracer)、图片(QCPItemPixmap)、括弧(QCPItemBracket)布局项(QCPLayoutElement):布局项(QCPAbstractLegendItem)、坐标轴矩形(QCPAxisRect)网格线(QCPGrid):每一个坐标轴对应一个网格线坐标轴(QCPAxis):一个坐标轴矩形包含四个坐标轴,上下左右四个坐标轴。
  图2可以绘制元素类图二、一个简单的示例
  如下代码是一个简单的蜡烛图代码,源码我是从官方网站上扒下来的,只是为了让大家有一个初步的了解,本来是英文的注释我换成了中文,然后添加了我自己个人的一些理解,运行结果如图3所示
  点击领取Qt学习资料视频教程链接
  1customPlotlegendsetVisible(true);23生成2种随机的蜡烛图数据,第一个是蜡烛图数据,第二个是美国线数据4intn500;5QVectordoubletime(n),value1(n),value2(n);6QDateTimestartQDateTime(QDate(2014,6,11));7start。setTimeSpec(Qt::UTC);8doublestartTimestart。toTimet();9doublebinSize360024;1天的数据10time〔0〕startT11value1〔0〕60;12value2〔0〕20;13qsrand(9);生成随机数时给指定的种子,那么生成的随机数都是相同的,因此每次运行后得到的结果都是不变的14for(inti1;i)15{16time〔i〕startTime3600i;17value1〔i〕value1〔i1〕(qrand()(double)RANDMAX0。5)10;18value2〔i〕value2〔i1〕(qrand()(double)RANDMAX0。5)3;19}2021初始化一个蜡烛图指针:22QCPFinancialcandlesticksnewQCPFinancial(customPlotxAxis,customPlotyAxis);23candlestickssetName(Candlestick);24candlestickssetChartStyle(QCPFinancial::csCandlestick);设置图表类型为蜡烛图25candlesticksdata()set(QCPFinancial::timeSeriesToOhlc(time,value1,binSize,startTime));设置数据26candlestickssetWidth(binSize0。9);设置每一个数据项的绘制宽度27candlestickssetTwoColored(true);设置是否显示两种颜色28candlestickssetBrushPositive(QColor(245,245,245));设置收开画刷29candlestickssetBrushNegative(QColor(40,40,40));设置收开画刷30candlestickssetPenPositive(QPen(QColor(0,0,0)));设置收开画笔31candlestickssetPenNegative(QPen(QColor(0,0,0)));设置收开画笔3233初始化一个美国线图指针:34QCPFinancialohlcnewQCPFinancial(customPlotxAxis,customPlotyAxis);35ohlcsetName(OHLC);36ohlcsetChartStyle(QCPFinancial::csOhlc);设置图表类型为美国线37ohlcdata()set(QCPFinancial::timeSeriesToOhlc(time,value2,binSize3。0,startTime));为了区分于蜡烛图显示,38ohlcsetWidth(binSize0。2);39ohlcsetTwoColored(true);4041创建一个坐标轴矩形42QCPAxisRectvolumeAxisRectnewQCPAxisRect(customPlot);43customPlotplotLayout()addElement(1,0,volumeAxisRect);44volumeAxisRectsetMaximumSize(QSize(QWIDGETSIZEMAX,100));45volumeAxisRectaxis(QCPAxis::atBottom)setLayer(axes);46volumeAxisRectaxis(QCPAxis::atBottom)grid()setLayer(grid);47设置自己构造的坐标轴矩形属性48customPlotplotLayout()setRowSpacing(0);49volumeAxisRectsetAutoMargins(QCP::msLeftQCP::msRightQCP::msBottom);50volumeAxisRectsetMargins(QMargins(0,0,0,0));51生成两种颜色的柱状图52customPlotsetAutoAddPlottableToLegend(false);是否自动生成图例53QCPBarsvolumePosnewQCPBars(volumeAxisRectaxis(QCPAxis::atBottom),volumeAxisRectaxis(QCPAxis::atLeft));54QCPBarsvolumeNegnewQCPBars(volumeAxisRectaxis(QCPAxis::atBottom),volumeAxisRectaxis(QCPAxis::atLeft));55for(inti0;in5;i)56{57intvqrand()20000qrand()20000qrand()20000100003;58(v0?volumeNeg:volumePos)addData(startTime36005。0i,qAbs(v));构造随机数据59}60volumePossetWidth(36004);61volumePossetPen(Qt::NoPen);62volumePossetBrush(QColor(100,180,110));63volumeNegsetWidth(36004);64volumeNegsetPen(Qt::NoPen);65volumeNegsetBrush(QColor(180,90,90));6667设置自己构造的坐标轴矩形的x轴和QCustomPlot中的坐标轴矩形(默认的会生成一个)x轴同步,两个坐标轴永远显示的坐标范围是一样的68connect(customPlotxAxis,SIGNAL(rangeChanged(QCPRange)),volumeAxisRectaxis(QCPAxis::atBottom),SLOT(setRange(QCPRange)));69connect(volumeAxisRectaxis(QCPAxis::atBottom),SIGNAL(rangeChanged(QCPRange)),customPlotxAxis,SLOT(setRange(QCPRange)));70构造一个新的坐标轴刻度计算类71QSharedPointerQCPAxisTickerDateTimedateTimeTicker(newQCPAxisTickerDateTime);72dateTimeTickersetDateTimeSpec(Qt::UTC);73dateTimeTickersetDateTimeFormat(dd。MMMM);74volumeAxisRectaxis(QCPAxis::atBottom)setTicker(dateTimeTicker);赋予自己构造的坐标轴矩形的x轴一个新的刻度计算类75volumeAxisRectaxis(QCPAxis::atBottom)setTickLabelRotation(15);76customPlotxAxissetBasePen(Qt::NoPen);77customPlotxAxissetTickLabels(false);不显示坐标轴文本78customPlotxAxissetTicks(false);不显示坐标轴(这个接口实现的不友好,后续文章我会具体说到)79customPlotxAxissetTicker(dateTimeTicker);赋予默认的坐标轴矩形的x轴一个新的刻度计算类80customPlotrescaleAxes();81customPlotxAxisscaleRange(1。025,customPlotxAxisrange()。center());82customPlotyAxisscaleRange(1。1,customPlotyAxisrange()。center());8384设置两个坐标轴矩形左右对齐85QCPMarginGroupgroupnewQCPMarginGroup(customPlot);86customPlotaxisRect()setMarginGroup(QCP::msLeftQCP::msRight,group);87volumeAxisRectsetMarginGroup(QCP::msLeftQCP::msRight,group);
  图3蜡烛图运行示意图
投诉 评论 转载

辽篮14点01再官宣!将帅单挑,金金缺阵,杨鸣提要求目标指日北京时间1月16日,辽篮继9点官宣对阵兄弟球队吉林队的比赛之后,于14点01分再次官宣,这一次发布的是辽宁男篮VS吉林男篮的赛前训练视频。虽然看似只是一段再平常不过的队内训练视……一地繁霜文张刚冬天的霜太厚了,连太阳也仿佛惧怕高原上的严寒,起得特别晚。整个山村仍裹在黑暗里,母亲已挑起水桶早早出门了,脚下喳喳作响,那是繁霜发出的特有的声音。水井在……新疆棉花产业链发展现状及展望2020年我国棉花种植总面积为316。89万hm2。2021年我国棉花种植总面积为302。81万hm2,同比降低4。65。新疆作为我国最大的产棉区,其棉花产量约占全国产量的85……高鹏说药材2022年12月5日九节菖蒲牛蒡子茺蔚子等行情上涨1。亳州药市九节菖蒲价格:受来货减少,加之市场正常消化,行情坚挺上行,目前市场统货多要价在200元左右,水洗好货价在210220元。牛蒡子价格:随着需求增加,近日询……中字头暴动,明天抓大放小2022年12月5日星期一一、盘面分析12月5日,沪指跳空高开高走,收出光头大阳线,深指稍弱,创指微跌。总体上个股涨多跌少,上涨家数3390,市场的赚钱效应是68。……冬至前后,建议多吃3红3白,顺应时节合理进补,健康过冬天冬至美食今年的冬至是12月22日,冬至前后,人体的阳气最为虚弱,需要好好的给身体进补。在饮食方面要种类多样,谷果肉蔬合理搭配。建议大家记得多吃3红3白,顺应时节合理进补,健康安……5G无线网络综合监控系统在智慧管廊应用及设计摘要:智慧管廊综合作为地下管线的关键性组成部分袁设计基于5G无线传感网络的监控系统对于其发展有重要意义,本文建立5G网络,同时引入综合监控系统袁设计了智慧管廊综合监控系统遥引入……QCustomplot使用分享源码解读一、头文件概述从这篇文章开始,我们将正式的进入到QCustomPlot的实践学习中来,首先我们先来学习下QCustomPlot的类图,如果下载了QCustomPlot源码……峨眉山神秘疯癫和尚在树上打坐,为嗑瓜子开示普贤十愿,醍醐灌顶那是在八年前的一天,我去四川出差,刚好地方在峨眉山旁边,我那时学佛很入迷,心想到了这圣地,还不上山朝拜一下普贤菩萨,那就说不过去了。于是我办完公事后,便买票上山,要不了多……中国原创高端珠宝全国巡展首站登陆合肥2022年下半年,继Tiffany伦敦萨奇美术馆VisionVirtuosity珠宝展和苏富比珠宝展之后,2022中国原创高端珠宝展全国巡展首站登陆合肥。12月1618日,巡展……垃圾佬适用的免布线真5。1无线环绕回音壁本内容来源于什么值得买APP,观点仅代表作者本人作者:大懒虫Kktv86寸到家后,总觉得电视柜上差点什么,最后决定上个回音壁。本着爱折腾的垃圾佬原则,有两点硬性要求:1。……分享帮助4岁孩子从亲子阅读到自主阅读的汉语分级书本小鱼哥哥今年秋季期读幼儿园中班,在暑假开始之前我都没有正式地教他认识汉字,更没有硬性规定他在这个阶段一定要认识多少汉字。身边的小朋友早在一年前就开始了认字卡,我始终觉得识字和看……
造就如簧巧舌百花齐放!乘风破浪的她们太可爱了凌晨,4岁宝宝拨通电话救了妈妈一命姚明女儿太像爸了!12岁身高超180打扮时髦,父女共用一张大欧冠四强诞生!半决赛对阵出炉曼城vs皇马,利物浦vs黄潜她对霹雳舞的爱,不只是奥运舞台霹雳舞世界冠军这样炼成专家告诉你,美丽是怎么化出来的?高端电视选购调查8成用户放弃OLED选择ULEDX顶薪打没了,哈登愿降薪续约,杜兰特秀豪车,皮蓬前妻喊话求复合福建斥资2亿打造的不夜城,本该建成地标,现在却无人问津大家还记得当年的神仙姐姐小龙女吗哈利波特手游跨年真香现场,玩家已经开始期待春节套装
小雅不辞而别,大亮千里追寻,这是不是剧本?这种食物空腹吃有健康隐患首富巴菲特越穷的人,越喜欢在这两件事上大方,要及时远离走进校园民事裁定书未送达生效吗?个人可以查手机定位吗(手机定位咋查)文学经典,如何立于舞台之上热博聚热点网 新型智能胶带屋顶涂层冬暖夏凉还节能学生国庆节作文抖音饽饽山上摘饽饽给老公吃饽饽是什么意思此梗的出处及含义介绍【歌词】手放开DJ版歌手:DJ舞曲热闻聚热点网 炎凉造句用炎凉造句大全

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找江西南阳嘉兴昆明铜陵滨州广东西昌常德梅州兰州阳江运城金华广西萍乡大理重庆诸暨泉州安庆南充武汉辽宁