WPF中使用Chart控件_wpf chart-程序员宅基地

技术标签: c#  wpf  开发语言  

最近在项目中用到了Chart控件,没有使用LiveChart,因为数据量很大,LiveChart太占内存了。

本项目使用的是VS2013 .NETFramework4.5

Chart控件的所在库是:System.Windows.Forms.DataVisualization.dll

需要自行添加该库的引用

        /// <summary>
        /// 设置曲线
        /// </summary>
        /// <param name="dt1">数据来源</param>
        /// <param name="chart1">控件</param>
        private void SetChart(DataTable dt1, Chart chart1)
        {
            try
            {
                chart1.ChartAreas.Clear();
                ChartArea chartArea1 = new ChartArea("X");//定义曲线所在区域
                chartArea1.AxisX.Interval = dt1.Rows.Count / 10;//设置曲线X轴的间隔
                chart1.ChartAreas.Add(chartArea1);
                chart1.Series.Clear();
                Series series1 = new Series();//设置图表中的折线或支持的图表的对象
                series1.ChartArea = "X";//图表所属的区域
                chart1.Series.Add(series1);//添加点位1
                chart1.Series[0].ChartType = SeriesChartType.Spline;//设置图表的显示方式,我用的是折现图
                chart1.Series[0].LegendText = "X轴值";//图例说明

                Series serices2 = new Series();//第2条折线
                serices2.ChartArea = "X";
                chart1.Series.Add(serices2);
                chart1.Series[1].ChartType = SeriesChartType.Line;
                chart1.Series[1].LegendText = "Y轴值";

                Series serices3 = new Series();//第3条折线
                serices3.ChartArea = "X";
                chart1.Series.Add(serices3);
                chart1.Series[2].ChartType = SeriesChartType.Line;
                chart1.Series[2].LegendText = "Z轴值";

                Legend legend1 = new Legend();//添加图例类,如果不添加此类是不会显示图例的
                legend1.Docking = Docking.Left;//图例显示的位置
                chart1.Legends.Add(legend1);//添加图例

                for (int i = 0; i < dt1.Rows.Count; i++)
                {
                    chart1.Series[0].Points.AddXY(dt1.Rows[i]["Time"].ToString(), double.Parse(dt1.Rows[i]["XValue"].ToString()));//第一条折线绑定X轴和Y轴的数据
                    chart1.Series[1].Points.AddXY(dt1.Rows[i]["Time"].ToString(), double.Parse(dt1.Rows[i]["YValue"].ToString()));//第二条折线绑定X轴和Y轴的数据
                    chart1.Series[2].Points.AddXY(dt1.Rows[i]["Time"].ToString(), double.Parse(dt1.Rows[i]["RawValue"].ToString()));//第三条折线绑定X轴和Y轴的数据
                }
            }
            catch (Exception ex)
            {
                System.Windows.MessageBox.Show("错误信息:" + ex.Message);
            }
        }

WPF界面设置

 

 

 效果图

 

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/single209/article/details/125102565

智能推荐

PHP preg_replace() 正则替换所有符合条件的字符串-程序员宅基地

文章浏览阅读685次。大多数语言的正则表达式都是由“/”作为定界符的,而在PHP中,还可以使用“#”定界,如果字符串中包含大量“/”字符,在使用“/”定界的时候,就需要对这些“/”转义,而使用“#”就不需要转义,更简洁。而正则表达式必须要使用定界符包围起来,在Javascript中定界符是“/”,而在PHP中,比较常见的是用“/”定界,也可以用“#”定界,而且外面还需要用引号包围起来。也就是说所有正则字符都有特定含义,如果需要再用来表示原字符含义,就需要在前面加“\”转义,即使非正则字符,用“\”转义也是没有问题的。_preg_replace

POI导出word,POI写word并导出.POI word相关类详解_poi生成word 在cell中新建p-程序员宅基地

文章浏览阅读397次。目录需求:用POI写一个Word并导出需求:用POI写一个Word并导出想到一个小品,问把大象装冰箱需要几步?_poi生成word 在cell中新建p

ISTQB初级认证-知识点及脑图总结-程序员宅基地

文章浏览阅读4.6k次,点赞17次,收藏72次。前言此文章为本人利用课余时间进行的ISTQB初级认证知识和考点的总结。总结过程主要参考了“ISTQB测试人员认证初级大纲(2011版)”,由于作者能力与精力有限,此篇文章可能会存在纰漏,望见谅并及时指出。谢谢!ISTQB思维脑图上图中红色字体部分为重要考点和易错点。ISTQB(初级)知识和考点总结软件测试基础(1)为什么需要测试(1.1)缺陷带来的危害(1.1.1)资金受..._istqb初级

Qt C++ 实现无边框窗体自定义缩放和拖动_qt无边框窗口缩放-程序员宅基地

文章浏览阅读1.8k次。在本文中,我们使用Qt C++中创建了一个无边框窗体,并实现自定义缩放和拖动功能。我们利用标志隐藏了窗体的边框,并通过事件过滤器监听了窗体和顶部栏的事件,从而实现了窗口的拖动和缩放功能。我们还通过辅助函数判断鼠标所处的边缘区域,并设置相应的鼠标样式,提供了直观的用户反馈。_qt无边框窗口缩放

在Mac上通过ssh连接谷歌云上的服务器实例并使用SFTP方式上传文件_mac ssh sftp-程序员宅基地

文章浏览阅读1.3k次。1. 在Mac上通过ssh连接谷歌云上的服务器实例(1)先从本地mac电脑中通过一段简单的命令获得钥匙ssh-keygen -t rsa -f ~/.ssh/google_sem_key(生成key的文件名) -C **(服务器的用户名) -b 2048执行命令会,会让你输入并确认密码,这里直接确认即可然后输入以下命令进入.ssh目录并用ls命令列出当前目录下的文件内容cat google_sem_key.pub你会找到一大串乱码,复制下来。(2)登录谷歌云账户,_mac ssh sftp

随便推点

2061:【例1.2】梯形面积_c++梯形面积保留小数点后两位-程序员宅基地

文章浏览阅读1.6k次。2061:【例1.2】梯形面积_c++梯形面积保留小数点后两位

Linux高级网络编程系列教程_linux 高级网络编程.doc-程序员宅基地

文章浏览阅读192次。一、网络应用层编程1、Linux网络编程01——网络协议入门2、Linux网络编程02——无连接和面向连接的区别3、Linux网络编程03——字节序和地址转换4、Linux网络编程04——套接字5、Linux网络编程05——C/S与B/S架构的区别6、Linux网络编程06——UDP协议编程7、Linux网络编程07——广播8、Linux网络编程08——多播9、Linux网络编程09——TCP编程之客户端10、Linux网络编程10——TCP编程之服务器11、Linux网络编程11—_linux 高级网络编程.doc

【华为OD机试 2023最新 】 密室逃生游戏(C++ 100%)_华为 机试 2023 site:csdn.net-程序员宅基地

文章浏览阅读1.1w次。如果box.length >= key.length,则先将box转为小写模式,然后将box转为数组字典序排序,接下来利用两个指针k,j,分别从key的0索引位置,和box的0索引位置开始扫描,如果扫描到的key[k] == box[j],则k++,j++,否则只有j++。每个箱子中都有一个 字符串s ,字符串由大写字母、小写字母、数字、标点符号、空格组成,需要在这些字符串中找到所有的字母,忽略大小写后排列出对应的密码串,并返回匹配密码的箱子序号。如不存在符合要求的密码箱,则返回 -1。_华为 机试 2023 site:csdn.net

ABAP 调用第三方 API,遇到乱码该怎么办?_abap sicf接收边乱码-程序员宅基地

文章浏览阅读2.7k次,点赞4次,收藏17次。这是 Jerry 2022 年第二篇原创文章,也是本公众号第 370 篇原创文章。之前有一个朋友在知乎上向我咨询过这个问题,我觉得很有代表性,所以专门用一篇文章来讲述一些相关知识点。先看这位朋友遇到的具体问题。用 Postman 调用第三方接口,里面的中文字符能够正常显示。然而当用 ABAP 的 HTTP 工具类 CL_HTTP_CLIENT 的 response->get_data( ) 读取响应之后,发现里面的中文字符,例如 “访问成功” 是乱码:首先明确一点,既然 Postman_abap sicf接收边乱码

JQuery学习-程序员宅基地

文章浏览阅读215次。animate():用户自定义动画jQuery标签变量名 . animate({"css属性名1" : "css属性" , "css属性名2" : "css属性" , "css属性名3" : "css属性" } , 动画持续毫秒时间)animate基本上只支持位置和尺寸相关的动画。其他的基本都不支持。如果要颜色的动画,可以使用css3,用js来切换class,达到控制。

机器学习之超参数优化 - 网格优化方法(随机网格搜索)_网格搜索参数优化-程序员宅基地

文章浏览阅读5.4k次,点赞4次,收藏32次。机器学习之超参数优化 - 网格优化方法(随机网格搜索)_网格搜索参数优化

推荐文章

热门文章

相关标签