搜索
bottom↓
回复: 30

C#如何显示曲线

[复制链接]

出0入0汤圆

发表于 2011-8-11 17:00:03 | 显示全部楼层 |阅读模式
我用C#winform制作了一个串口软件,现在我想把18b20采集的温度数据通过串口将温度变化的曲线显示在P串口软件上上,应该如何实现?

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2011-8-11 19:40:18 | 显示全部楼层
把采样的数据用GDI+画线画出来

出0入0汤圆

发表于 2011-8-11 20:07:11 | 显示全部楼层
ZedGraph

出0入0汤圆

发表于 2011-8-11 20:16:25 | 显示全部楼层
严重同意楼上,很好的一个画曲线图的控件。

出0入0汤圆

发表于 2011-8-11 21:23:22 | 显示全部楼层
我正好最近也需要用C#画线。MARK

出0入0汤圆

发表于 2011-8-11 23:04:46 | 显示全部楼层
.net 3.5 开始已经带了chart 组件。用法参考这个网站的例子。
http://archive.msdn.microsoft.com/mschart

出0入0汤圆

发表于 2011-8-11 23:33:52 | 显示全部楼层
mark!!

出0入0汤圆

发表于 2011-8-11 23:38:41 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-8-11 23:44:15 | 显示全部楼层
mark一下,我一直用measurement studio for vs2008

出0入0汤圆

发表于 2011-8-12 08:32:55 | 显示全部楼层
回复【8楼】wangyi1e  
-----------------------------------------------------------------------

有破——解版的吗?

出0入0汤圆

发表于 2011-8-12 09:07:05 | 显示全部楼层
顶、、、

出0入0汤圆

发表于 2011-8-12 09:10:02 | 显示全部楼层
学习!

出0入0汤圆

 楼主| 发表于 2011-8-15 17:05:46 | 显示全部楼层
谢谢各位!再好好研究研究。

出50入0汤圆

发表于 2011-8-15 17:45:04 | 显示全部楼层
使用 自带的  Chart 可显示 温度变化的曲线

   public System.Windows.Forms.DataVisualization.Charting.Chart chart_WSD;



     public void WSD_图表节点显示设定(string DZ)
        {
            string DT = " DT >= '" + dateTimePicker_WSD_S.Value.ToString() + "' and DT <='" + dateTimePicker_WSD_E.Value.ToString() + "' ";
            apps.DBF.T_温湿度记录.Open(" select * from wsdlist where dz = '" + DZ + "' and " + DT + " order by dt ");

            if (apps.DBF.T_温湿度记录.data.Rows.Count > 2)
            {
                chart_WSD.ChartAreas[0].AxisX.Minimum = DateTime.Parse(apps.DBF.T_温湿度记录.data.Rows[0]["DT"].ToString()).ToOADate();
                chart_WSD.ChartAreas[0].AxisX.Maximum = DateTime.Parse(apps.DBF.T_温湿度记录.data.Rows[apps.DBF.T_温湿度记录.data.Rows.Count - 1]["DT"].ToString()).ToOADate();
            }
            else
            {
                chart_WSD.ChartAreas[0].AxisX.Minimum = dateTimePicker_WSD_S.Value.ToOADate();
                chart_WSD.ChartAreas[0].AxisX.Maximum = dateTimePicker_WSD_E.Value.ToOADate();
            }
            chart_WSD.ChartAreas[0].AxisX2.Minimum = chart_WSD.ChartAreas[0].AxisX.Minimum;
            chart_WSD.ChartAreas[0].AxisX2.Maximum = chart_WSD.ChartAreas[0].AxisX.Maximum;


            chart_WSD.Series.Clear();
            chart_WSD.DataSource = apps.DBF.T_温湿度记录.Bs;

           /* if (checkedListBox_wsd.GetItemChecked(0))//def
            {
                Chart_Set(ref chart_WSD, "WD0", "平均温度");
                Chart_Set(ref chart_WSD, "SD0", "平均温度");
                Chart_Set(ref chart_WSD, "WD1", "内温度");
                Chart_Set(ref chart_WSD, "SD1", "内温度");
                Chart_Set(ref chart_WSD, "WD2", "外温度");
                Chart_Set(ref chart_WSD, "SD2", "外温度");
            }*/
            checkedListBox_wsd.SetItemChecked(0, true);
            checkedListBox_wsd.SetItemChecked(1, true);
            checkedListBox_wsd.SetItemChecked(2, true);
            
            uC_通用表格_WSD.dGV.Columns["DZ"].HeaderText = "地址";
            uC_通用表格_WSD.dGV.Columns["DT"].HeaderText = "时间";


            uC_通用表格_WSD.dGV.Columns["XH"].Visible = false;
            uC_通用表格_WSD.dGV.Columns["CTRL"].Visible = false;
            uC_通用表格_WSD.dGV.Columns["SD"].Visible = false;
            uC_通用表格_WSD.dGV.Columns["WD17"].Visible = false;
            uC_通用表格_WSD.dGV.Columns["SD17"].Visible = false;

            for (int i=0;i<checkedListBox_wsd.Items.Count;i++)
            {
                string WDS="WD"+i.ToString();
                string SDS="SD"+i.ToString();
                string TXT = i.ToString();
                if (i == 0) TXT = "平均";
                if (i == 1) TXT = "内部";
                if (i == 2) TXT = "外部";
               
                Chart_Set(ref chart_WSD,WDS,TXT+"温度");
                Chart_Set(ref chart_WSD, SDS,TXT + "湿度");

                uC_通用表格_WSD.dGV.Columns[WDS].HeaderText = TXT + "温度";
                uC_通用表格_WSD.dGV.Columns[SDS].HeaderText = TXT + "湿度";
               
                if (checkedListBox_wsd.GetItemChecked(i))
                {
                    uC_通用表格_WSD.dGV.Columns[WDS].Visible = true;
                    uC_通用表格_WSD.dGV.Columns[SDS].Visible = true;
                    chart_WSD.Series[WDS].Enabled = true;
                    chart_WSD.Series[SDS].Enabled = true;
                    //chart_WSD
                }
                else
                {
                    uC_通用表格_WSD.dGV.Columns[WDS].Visible = false;
                    uC_通用表格_WSD.dGV.Columns[SDS].Visible = false;
                    chart_WSD.Series[WDS].Enabled = false;
                    chart_WSD.Series[SDS].Enabled = false;
               
                }
            }
            

        }

出0入0汤圆

 楼主| 发表于 2011-8-16 09:00:22 | 显示全部楼层
这是这个ZedGraph组件:ourdev_668116S8JVV9.rar(文件大小:577K) (原文件名:zedgraph_dll_v509_459.rar)
下面这个网址有使用方法:
http://hi.baidu.com/sakuram/blog/item/0cc40450dbc8726b84352475.html

出0入0汤圆

发表于 2011-8-16 11:17:00 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-8-16 14:11:16 | 显示全部楼层
回复【14楼】zp820
这是这个zedgraph组件: (原文件名:zedgraph_dll_v509_459.rar)  
下面这个网址有使用方法:
http://hi.baidu.com/sakuram/blog/item/0cc40450dbc8726b84352475.html
-----------------------------------------------------------------------

谢谢,可以用,有祥细的说明更好

出0入0汤圆

发表于 2011-8-16 14:30:12 | 显示全部楼层
mark~

出0入0汤圆

发表于 2011-8-16 14:40:04 | 显示全部楼层
推荐微软免费的MSChart,完全收购于多年致力于图表控件的Dundas公司

出0入0汤圆

发表于 2011-8-30 12:33:32 | 显示全部楼层
mark!

出0入0汤圆

发表于 2011-8-30 12:46:54 | 显示全部楼层
我用的ZedGraph,还不错!
开源,免费。

出0入0汤圆

发表于 2011-9-1 00:31:36 | 显示全部楼层
回复【20楼】Delong_z  天之蛟龙
我用的zedgraph,还不错!
开源,免费。
-----------------------------------------------------------------------


是的,Zedgraph很不错。不过从08年底这个项目就没有再更新过了,请楼主把这一点考虑进去,如果zedgraph当前功能可以在将来一直满足你的需求,那么是一个不错的选择,否则,请考虑微软的mschart

出0入0汤圆

发表于 2011-9-5 14:14:53 | 显示全部楼层
mark

出0入0汤圆

发表于 2011-9-5 23:44:08 | 显示全部楼层
学习

出0入0汤圆

发表于 2011-9-6 00:31:26 | 显示全部楼层
静态的用 MSChart 很好

但据说 MSChart 动态不行,刷新会闪烁

网上流传的一个所谓的解决闪烁的办法,但很多人说不靠谱

不知道有没有更好的办法可以解决这个问题

出0入0汤圆

发表于 2011-9-6 08:49:04 | 显示全部楼层
以前我做过一个每秒更新4次无闪烁的MSChart程序,只要打开offscreen drawing就行了。我还试过用API阻止MSChart过快ReDraw,也是有效果的。

出0入0汤圆

发表于 2012-1-17 22:14:04 | 显示全部楼层
学习了
头像被屏蔽

出0入0汤圆

发表于 2012-1-17 23:52:08 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

出0入0汤圆

发表于 2012-1-18 08:06:08 | 显示全部楼层
mark

出0入0汤圆

发表于 2012-1-19 17:16:39 | 显示全部楼层
回复【17楼】fanwt  
mark~
-----------------------------------------------------------------------

Dundas被MS收购了?好事啊
头像被屏蔽

出0入0汤圆

发表于 2014-5-28 09:51:09 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 11:56

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表