C# 绘制实时散点图

xuehan1108 2009-12-15 09:22:51
下位机是一温度采集系统,通过串口通讯获取采集的数据,两两数据差别比较小(小于0.001级),想用C#绘制采集到的数据的变化过程,把每次采集的数据绘制成一个点,能够自定义坐标,显示坐标轴(X轴为时间,Y轴为温度值)和坐标刻度,由于我的数据两两之间差别小,Y坐标的起点不能从0开始,坐标范围应该是所有数据的Min值—Max值,这样才能清楚的看出变化趋势。我在VB中,用picturebox控件实现了。但是,C#里picturebox好像主要用于显示图片。不知道该怎么实现,望高手指点。
...全文
1785 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
牧心 2012-07-10
  • 打赏
  • 举报
回复
楼主实现了吗?给个例子看看,157332174@qq.com
luong08 2009-12-17
  • 打赏
  • 举报
回复
水平和垂直滚动可以用API中的ScrollWindowEx函数,效率很高,滚动之后你只要画需要画的部分即可
xuehan1108 2009-12-17
  • 打赏
  • 举报
回复
zedgraph,怎么实现水平和垂直滚动条呢?Autoscroll设为True也不行呢
nixiang12 2009-12-16
  • 打赏
  • 举报
回复
路过..围观高手回答
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
先试一下咯。希望有做过类似的高人的指点啊。因为时间比较紧,希望能够一步到位。
dai78 2009-12-16
  • 打赏
  • 举报
回复
显示曲线的控件
数据之巅 2009-12-16
  • 打赏
  • 举报
回复 1
用zedgraph这个开源图表控件啊。可以动态显示数据,我在它的Demo中看到过。。。

很不多的。。。
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
mschart只能画折线图,不能画散点图。怎么也去不掉连线。而且他的坐标能自定义吗?我在VBPicturebox里画的时候,是定义Y坐标scale为所采集的数据最大值到最小值。很容易实现了,因为我的数据相差特别小,要看出所画点的变化趋势,相当于需要把Y坐标放大。
huhulala12345 2009-12-16
  • 打赏
  • 举报
回复
添加一个用户控件对象,重写OnPaint函数
memoCKH 2009-12-16
  • 打赏
  • 举报
回复
如果要是实时的话,我觉得mschart是不错的。
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
默认的坐标系是左上角为(0,0),而我想定义为我们常用的左下角为(0,0),还有我想画上坐标轴,随着数据的增加,所画的点自动收缩。就是X轴、Y轴的终点随着数据的增加不断改变。不知道说清楚了没?
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
那坐标怎么画呢?需要和点的值对应哦。
assky124 2009-12-16
  • 打赏
  • 举报
回复
网上下个TeeChart试试
blueteeth_yl 2009-12-16
  • 打赏
  • 举报
回复
GDI画图
具体自己再琢磨
kolosi 2009-12-16
  • 打赏
  • 举报
回复
这个用gdi+画容易一些。
在paint事件里加上e.Graphics.DrawEllipse(Pens.Black, 10, 10, 3, 3);
就是画圈圈了。
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
其实我这里就是很简单的,采集一个数据,添加一个点。在VB里面用Picturebox很容易就实现了的,只是坐标需要自己定义。但c#里的Picturebox貌似没有这个功能。
xuehan1108 2009-12-16
  • 打赏
  • 举报
回复
谢谢,先试试各位的方案?
wuyq11 2009-12-15
  • 打赏
  • 举报
回复
可用OWC显示
OWC11.ChSeries one = chart.SeriesCollection.Add(0);
one.Type = OWC11.ChartChartTypeEnum.chChartTypeScatterMarkers;//散点图

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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