安庆大理运城常德铜陵江西
投稿投诉
江西南阳
嘉兴昆明
铜陵滨州
广东西昌
常德梅州
兰州阳江
运城金华
广西萍乡
大理重庆
诸暨泉州
安庆南充
武汉辽宁

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岁孩子从亲子阅读到自主阅读的汉语分级书本小鱼哥哥今年秋季期读幼儿园中班,在暑假开始之前我都没有正式地教他认识汉字,更没有硬性规定他在这个阶段一定要认识多少汉字。身边的小朋友早在一年前就开始了认字卡,我始终觉得识字和看……
截至目前,盘点2022年搭载骁龙870的手机人生没有太晚的开始广西之美,典藏桂西!探秘中越边陲绝美风光CBA争冠格局有变,辽粤或退出四强,两大冠军黑马浮现,正式叫5年后!再看乔治娜和伊莲娜,终于明白C罗的选择是多么的明智灵敏度提升近十万倍!中国科大实现皮特斯拉级NV色心量子传感器深夜2点!杜锋为赵继伟付豪庆生,周琦意外抢镜,关系真的不一般19人大名单出炉!勇士最后一席签谁?美媒送3大目标,甜瓜排第散文岁月静好刘亦菲和唐嫣穿同款制服,气质却差很大,身高仪态太重要了谁发明的倒序洗头?洗完真的有效?天天洗澡和一周洗一次澡,哪个更科学?正确答案来了桑柘《笑》亏损的亚马逊价值何在雪的呼吸作文中国癌症地图出炉排名前五的患者,在这些省份较高发鸡肝能挂钩钓鱼吗,怎么挂钩不掉Windows1019H1最新预览版Build18234发布图书发行管理网络系统集成合同书悲惨世界读后感【人人早报】610期:在线购票成了几百亿的生意,这背后藏了多巧选儿童床让宝宝有一个优质好睡眠秋季山水游旅途注意事项

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找七猫云易事利