社区
界面
帖子详情
MSCHART 控件,显示500万个数据点,如何显示
ThinkXi
2019-05-08 06:11:01
用mschart,微软自带的控件,做曲线图显示,一个波形有500万个数据点,怎么样能一次性显示出完整的波形图,用的是vc++,
目前用的put_RowCount设置列数,用setdata函数设置每一列对应的数据。
但是RowCount参数是short类型,500万超范围了,是不是mschart不能够实现,还是思路不对头,求指教,感谢!
...全文
925
13
打赏
收藏
MSCHART 控件,显示500万个数据点,如何显示
用mschart,微软自带的控件,做曲线图显示,一个波形有500万个数据点,怎么样能一次性显示出完整的波形图,用的是vc++, 目前用的put_RowCount设置列数,用setdata函数设置每一列对应的数据。 但是RowCount参数是short类型,500万超范围了,是不是mschart不能够实现,还是思路不对头,求指教,感谢!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ThinkXi
2019-05-12
打赏
举报
回复
多谢各位的回复,现在的思路和大家想的差不多,按一定的算法,提取一部分点来显示,这样应该是可以的。
再有又碰到一个新问题,mschart一条曲线中,想改表某个点的颜色,或者做个特殊标记,用了如下方法:
CVcPlot vcPlot = (CVcPlot)(m_ChartWaveForm.get_Plot());
CVcSeriesCollection VcSeriesCollection = vcPlot.get_SeriesCollection();
CVcSeries vcSeriesFast = VcSeriesCollection.get_Item(1);
CVcDataPoints vcDataPoints = vcSeriesFast.get_DataPoints();
CVcDataPoint vcDataPoint = vcDataPoints.get_Item(100);//执行到此处,异常,为什么必须填-1,-1怎么代表是哪个点,
CVcMarker vcMarker = vcDataPoint.get_Marker();
vcMarker.put_Style(1);
CVcBrush vcBrush = vcDataPoint.get_Brush();
CVcColor vcColor = vcBrush.get_FillColor();
vcColor.Set(255, 255, 0);
现在的问题是vcDataPoints.get_Item(100),这个函数,只有输入-1才不异常,怎么指定特定的点来设置颜色呢?-1表示什么意思。
baita96
2019-05-11
打赏
举报
回复
这个怎么样?
量子高宏亮
2019-05-11
打赏
举报
回复
思路不对,500万个点没必要同时全部加载到空间里,一方面放不下,另一方面也没必要,因为你不可能同时把500万个数据点都显示出来,横轴分辨率没那么高,都堆在界面上。你可以自己做个算法,根据你显示的横轴范围,动态选择一部分数据显示。例如,时间轴范围要显示500万个数据的全貌,但屏幕上显示像素宽度只有1000个点,那么就每隔5000个点抽一个数据显示出来就够了,如果用户放大了曲线看局部比如2000个点的局部,再根据放大后的时间轴宽度,每隔一个数据抽一个点显示
sichuanwww
2019-05-10
打赏
举报
回复
500W还是有挑战的,试试Matlab
zgl7903
2019-05-09
打赏
举报
回复
每N点抽出其中的最大值和最小值, 这样既可加速刷新,有不失波形的特征点
大树学长
2019-05-09
打赏
举报
回复
合成的曲线记得加抗锯齿
大树学长
2019-05-09
打赏
举报
回复
建议按照像素画点,电脑屏幕无法精确显示500万个点,根据不同的屏幕分辨率来分多少个点合成一个像素的纵坐标这样,每个像素直接的横坐标是不变的,都是紧挨着的,然后将所有像素连接起来,
sevancheng
2019-05-09
打赏
举报
回复
翻页显示,一页只显示一部分
fly4free
2019-05-08
打赏
举报
回复
是缩略图还是啥?
500万个点,那个是很长的,屏幕宽一般才 1980,4K平会多一些
肯定一次看不下,要想看, 要嘛就缩放,具体算法叫啥名不知道,反正实际屏幕上的一个像素点,可能是很多数据的【重复点】
要吗就分段,给一个滚动条,移动到哪儿,就看哪部分的
画图的DC 应该无限大吧
ThinkXi
2019-05-08
打赏
举报
回复
多谢回复,现在项目要求要一次看到整个波形,您说的抽样显示,有个问题,就是有些点是剧烈变化的点,可能和上一个点数值差距很大,这样的话,抽样显示波形就不对了。
不知道其他的控件是否支持,还有个LabView的控件,心里也没底,并且改动也很大,愁啊,
xiaobaiqing1983
2019-05-08
打赏
举报
回复
1、建议将500W的的数据放置在多条曲线拼接显示,否则会申请很大的一段连续内存,绘图效率很差。 2、建议考虑是否要一次显示这个多点,能否抽样显示 3、建议考虑数据分批显示
ThinkXi
2019-05-08
打赏
举报
回复
你好,请问怎么优化啊,就是说500万数据点,没法实现吗
smwhotjay
2019-05-08
打赏
举报
回复
干爆软件的节奏。。肯定要数据优化。降低模型。
asp.net微软图表
控件
Ms
Char
t
本文详细介绍了在ASP.NET项目中如何使用Ms
Char
t
控件
进行
数据
统计及图表展示,包括
控件
的添加、
数据
绑定、属性设置以及生成折线图、样条图、条形图和饼图等不同类型的图表。
Ms
char
t学习(MS
char
t介绍)
本文介绍了MS
Char
t
控件
的基本概念、安装步骤、图表类型及属性,详细演示了如何在VS2008中利用MS
Char
t
控件
实现
数据
展示,包括
数据
查询、数组
数据
绑定等操作。
asp.net中使用ms
char
t
控件
本文详细介绍了在ASP.NET项目中如何使用Ms
Char
t
控件
进行
数据
统计及图表展示,包括
控件
的添加、
数据
绑定、属性设置等关键步骤。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章