Devexpress中Chart控件坐标的移动
来源:互联网 发布:html5 js 编辑:程序博客网 时间:2024/06/06 20:53
在利用Devexpress的Chart控件作图时,常要对控件的坐标进行设置,否则,图形会在界面上不断地累加,如下图所示。横坐标不断累积,从而使图形显得臃肿,现在,我们要添加代码对横坐标进行设置,使其可以进行移动。
解决的方法及步骤如下:
1)可以到Dexexpress中查看XtraCharts的sample,可以查看当中的real-time Chart,里面有相关的解决代码。
代码如下:
void timer_Tick(object sender, EventArgs e) { if(Series1 == null || Series2 == null) return; DateTime argument = DateTime.Now; SeriesPoint[] pointsToUpdate1 = new SeriesPoint[interval]; SeriesPoint[] pointsToUpdate2 = new SeriesPoint[interval]; for(int i = 0; i < interval; i++) { pointsToUpdate1[i] = new SeriesPoint(argument, value1); pointsToUpdate2[i] = new SeriesPoint(argument, value2); argument = argument.AddMilliseconds(1); UpdateValues(); } DateTime minDate = argument.AddSeconds(-TimeInterval); int pointsToRemoveCount = 0; foreach(SeriesPoint point in Series1.Points) if(point.DateTimeArgument < minDate) pointsToRemoveCount++; if(pointsToRemoveCount < Series1.Points.Count) pointsToRemoveCount--; Series1.Points.AddRange(pointsToUpdate1); Series2.Points.AddRange(pointsToUpdate2); if(pointsToRemoveCount > 0) { Series1.Points.RemoveRange(0, pointsToRemoveCount); Series2.Points.RemoveRange(0, pointsToRemoveCount); } if(AxisXRange != null) AxisXRange.SetMinMaxValues(minDate, argument); }
这段代码中以时间为横坐标,当横坐标上的时间小于预设的时间时,series上的点落入删除的区间,最后调用points的removeRange
删除这些点。
2)我的实现方案
DevExpress.XtraCharts.SeriesPoint p = new DevExpress.XtraCharts.SeriesPoint(st, val); chartControl1.Series[0].Points.Add(p); nowLength++; if (nowLength > xlength) { chartControl1.Series[0].Points.RemoveRange(0, nowLength - xlength); nowLength = xlength; }xlength是自己设定的一个int,表示你期望在横坐标上显示的点,当现在的点数nowLength超过这个值,就会将最前面的这个差额
减去。从而一直维护下去。
执行效果:
其实,这里的逻辑可以更简单,上述程序的意思就是在界面上点数量一定时,增添一个点,最前面就删除一个点。所以,有以下程序变种,逻辑相同,程序却更为简单:
DevExpress.XtraCharts.SeriesPoint p = new DevExpress.XtraCharts.SeriesPoint(st, val);chartControl1.Series[0].Points.Add(p);nowLength++;if (nowLength > xlength){ chartControl1.Series[0].Points.RemoveRange(0, 1);}
第一篇技术博文,希望能够在CSDN,和各位大侠一起成长,我这只菜青色的小鸟,希望在各位大侠的帮助下翱翔蓝天,蜕变为大鹏。
请多多指教。
- Devexpress中Chart控件坐标的移动
- tablayout在移动中如何计算子控件的坐标
- c#—devexpress chartcontrol 鼠标点击chart上的点事件,鼠标移动显示值
- WPF DevExpress Chart控件多Y轴,指定数据参考的Y轴
- C#中chart控件的用法
- DevExpress Chart,将数据库的数据绑定到Chart
- Devexpress Chart控件 Y轴标题垂直显示
- Delphi中Chart组件,Chart控件用法
- Chart控件的使用
- DevExpress控件的使用
- DevExpress 的验证控件
- DevExpress控件的布局
- DevExpress控件的GridControl控件
- [DevExpress控件应用]XtraBar: 实现回车移动到下个控件的功能
- 编程改变vs.net 2010中chart控件的样式
- 关于vs2010中Chart控件的一个小BUG
- .NET Framework 4.5 中chart(图表)控件的使用
- DevExpress中DateEdit控件汉化
- Xming(windows下的X Server)的使用,在windows下运行你的终端和所有基于XWindow的程序
- 程序员必看 c++笔试题汇总
- Android msm7627 认识
- CSS在IE与firefox中的区别
- mysql解压版安装
- Devexpress中Chart控件坐标的移动
- MySQL的错误1264, 1406, 1329 ,1101 的修改方法
- 8个寄存器
- 绝对打击
- 一种快速确定物体边缘的算法(MIT-2011-CVPR)
- 交叉编译并测试lame
- 在windows下访问linux图形界面之vncserver
- 【细致工作】实验室第一份小工
- 我今年二十七八岁