100分求解 c# chart控件的问题

sola040515 2012-02-22 02:20:46

使用chart控件来描绘一个时间段的数据曲线。现在遇到一个问题,比如软件在2012年2月21号的08:00:00到11:00:00,这段时间内接收到数据(数据时连贯的),然后数据已经停止了;在2012年2月22号的08:00:00又开始接收到数据,。。。;现在问题出来了,2月21号11:00:00 过后没有数据,直到2月22号08:00:00 才有数据,那么画出来的曲线中2月21号11:00:00到2月22号08:00:00这段时间应该是不包含数据,曲线也不需要画出来。但实际上chart控件是直接连接起来的,请问该如何将这段没有数据的曲线清除掉,或者是不是在绘制过程中就应该去除。
如下图
想实现的是

实际情况却是

...全文
453 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
howema 2013-05-01
  • 打赏
  • 举报
回复
偶也在学习chart控件.............
buptwm 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 sola040515 的回复:]
自己解决了 直接列出datatable,遍历datatable后插入空行,只是效率不是很好
[/Quote]
这样速度上可能有点慢,反正功能实现了,呵呵,GX
sola040515 2012-02-24
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 buptwm 的回复:]
引用 19 楼 sola040515 的回复:
自己解决了 直接列出datatable,遍历datatable后插入空行,只是效率不是很好

这样速度上可能有点慢,反正功能实现了,呵呵,GX
[/Quote]谢谢
sola040515 2012-02-22
  • 打赏
  • 举报
回复

自己解决了 直接列出datatable,遍历datatable后插入空行,只是效率不是很好
sola040515 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 facelessvoidhj 的回复:]
http://support.microsoft.com/kb/177685/zh-cn
看看这个是否跟你的情况一样?
[/Quote]谢谢,这篇我看过了,可惜不是很懂
just59277 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 sola040515 的回复:]

引用 8 楼 just59277 的回复:
你是怎么绑定的 如果是循环绑定的 可以判断下 当前数据和上一数据的时间是否连贯 如果不连贯,就手动的空出一部分位置 或者补0值 直到有新的数据为止
谢谢,和我想的差不多,只是现在有个问题,datatable不知道能不能在指定第几行后插入行数据,下面的数据往下推
[/Quote]

如果你是循环添加chart的point 的话 肯定是可以的 不过会有起伏 看来这种方式不行 要想办法去掉两点直接的线
dingjian2008 2012-02-22
  • 打赏
  • 举报
回复
设置series.EmptyPointStyle属性
空值赋double.NaN
c02645 2012-02-22
  • 打赏
  • 举报
回复
试过List<double?> data = new List<double?>();没有呢?插入一个null值。
buyong 2012-02-22
  • 打赏
  • 举报
回复
我觉得是要2N条,不过颜色可以就用1种
[Quote=引用 2 楼 sola040515 的回复:]

引用 1 楼 c02645 的回复:
画两条不同颜色的行不行
具体情况是这只是其中某一个的历史记录,还有很多和这个类似的都要画出来,如果一个就画两条,那N个就得画2N条 。。。。
[/Quote]
facelessvoidhj 2012-02-22
  • 打赏
  • 举报
回复
http://support.microsoft.com/kb/177685/zh-cn
看看这个是否跟你的情况一样?
buptwm 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 sola040515 的回复:]

引用 9 楼 qq13833254607 的回复:
引用 6 楼 sola040515 的回复:

引用 5 楼 qq13833254607 的回复:
哦,你这个和我的情况还不一样,那就多画几条线吧,简单
能说说你遇到的是什么情况吗,说不定可以做个参考


就像股票周末停盘那段时间就不应该画出来一样,我那个也是y轴值在周末那段时间是不变的,完全可以从x坐标轴上把周末去掉,而且去掉……
[/Quote]
加入空数据以后,我记得横轴能看出来一条黑线,好像颜色不能改,除非自己画X轴
sola040515 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 just59277 的回复:]
你是怎么绑定的 如果是循环绑定的 可以判断下 当前数据和上一数据的时间是否连贯 如果不连贯,就手动的空出一部分位置 或者补0值 直到有新的数据为止
[/Quote]谢谢,和我想的差不多,只是现在有个问题,datatable不知道能不能在指定第几行后插入行数据,下面的数据往下推
sola040515 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 qq13833254607 的回复:]
引用 6 楼 sola040515 的回复:

引用 5 楼 qq13833254607 的回复:
哦,你这个和我的情况还不一样,那就多画几条线吧,简单
能说说你遇到的是什么情况吗,说不定可以做个参考


就像股票周末停盘那段时间就不应该画出来一样,我那个也是y轴值在周末那段时间是不变的,完全可以从x坐标轴上把周末去掉,而且去掉这一段之后2边的值还能衔接的起来。你这个首先不知道那个空……
[/Quote]我现在想到了一个办法,就是在时间差比较大的位置,将一条空数据插入
qq13833254607 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sola040515 的回复:]

引用 5 楼 qq13833254607 的回复:
哦,你这个和我的情况还不一样,那就多画几条线吧,简单
能说说你遇到的是什么情况吗,说不定可以做个参考
[/Quote]

就像股票周末停盘那段时间就不应该画出来一样,我那个也是y轴值在周末那段时间是不变的,完全可以从x坐标轴上把周末去掉,而且去掉这一段之后2边的值还能衔接的起来。你这个首先不知道那个空档是不是固定的,而且你这个空档的2段值不是连续的,理论上就应该分开画线
just59277 2012-02-22
  • 打赏
  • 举报
回复
你是怎么绑定的 如果是循环绑定的 可以判断下 当前数据和上一数据的时间是否连贯 如果不连贯,就手动的空出一部分位置 或者补0值 直到有新的数据为止
qq13833254607 2012-02-22
  • 打赏
  • 举报
回复
就像股票周末停盘那段时间就不应该画出来一样,我那个也是y轴值在周末那段时间是不变的,完全可以从x坐标轴上把周末去掉,而且去掉这一段之后2边的值还能衔接的起来。你这个首先不知道那个空档是不是固定的,而且你这个空档的2段值不是连续的,理论上就应该分开画线
sola040515 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 qq13833254607 的回复:]
哦,你这个和我的情况还不一样,那就多画几条线吧,简单
[/Quote]能说说你遇到的是什么情况吗,说不定可以做个参考
qq13833254607 2012-02-22
  • 打赏
  • 举报
回复
哦,你这个和我的情况还不一样,那就多画几条线吧,简单
sola040515 2012-02-22
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qq13833254607 的回复:]
我以前做过这样的图,也是要跳过周末,找半天没有简便的方法,最后的解决办法就是不用自带的那个DateTime横轴,自己定义坐标系,自己画X Axis,虽然麻烦点但只能这样了
[/Quote]谢谢,有没有个流程呢,mschart刚接触没多久,不是很会用
qq13833254607 2012-02-22
  • 打赏
  • 举报
回复
我以前做过这样的图,也是要跳过周末,找半天没有简便的方法,最后的解决办法就是不用自带的那个DateTime横轴,自己定义坐标系,自己画X Axis,虽然麻烦点但只能这样了
加载更多回复(2)

4,820

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧