WPF优秀图表组件推荐之LiveCharts

概述

LiveCharts是一个比较漂亮的WPF图表控件,在数据变化时还会有动画切换的效果,并且样式也可以控制。

 

官方网站:Live Charts (lvcharts.net)

开源代码:GitHub - Live-Charts/Live-Charts: Simple, flexible, interactive & powerful charts, maps and gauges for .Net

 

本文代码基于Stylet开发,如果您还不了解Stylet,请参阅:

WPF优秀组件推荐之Stylet(一) - seabluescn - 博客园 (cnblogs.com)

WPF优秀组件推荐之Stylet(二) - seabluescn - 博客园 (cnblogs.com)

 

环境安装

通过Nuget引用下面两个组件;

  

基本使用

本文介绍一个常用的折线图的控件,其它控件请查看官方代码。

Xaml:

复制代码
复制代码
                <lvc:CartesianChart >
                    <lvc:CartesianChart.Series>
                        <lvc:LineSeries Title="Voltage" Values="{Binding VoltageLineSeries}" />
                        <lvc:LineSeries Title="Current"  Values="{Binding CurrentLineSeries}"  />                       
                    </lvc:CartesianChart.Series>

                    <!--定义Y轴-->
                    <lvc:CartesianChart.AxisY>                       
                        <lvc:Axis Title="Voltage/Current"></lvc:Axis>
                    </lvc:CartesianChart.AxisY>

                    <!--定义X轴-->
                    <lvc:CartesianChart.AxisX>                      
                        <lvc:Axis Title="Samples" Labels="{Binding XTimeLabels}"/>
                    </lvc:CartesianChart.AxisX>
                </lvc:CartesianChart>
复制代码
复制代码

 Code:

复制代码
        #region LiveCharts

        public string[] XTimeLabels { get; set; } = new string[] { "0" };
        public ChartValues<double> VoltageLineSeries { get; set; }
        public ChartValues<double> CurrentLineSeries { get; set; }

        public void ReflashDatas()
        {
            Random random = new Random();

            VoltageLineSeries = new ChartValues<double>();
            CurrentLineSeries = new ChartValues<double>();

            Task.Run(() =>
            {
                while (true)
                {
                    VoltageLineSeries.Add(random.Next(200, 300));
                    CurrentLineSeries.Add(random.Next(1, 20));

                    int Count = VoltageLineSeries.Count;
                    if (Count > 0)
                    {
                        XTimeLabels = new string[Count];
                        for (int i = 0; i < Count; i++)
                        {
                            XTimeLabels[i] = (i + 1).ToString();
                        }
                    }

                    Thread.Sleep(2000);
                }
            });
        }

        #endregion
View Code
复制代码

以上代码下载地址:NiceComponents · Bruce/Learn WPF - 码云 - 开源中国 (gitee.com)

 

参考文档:

WPF绘制图表-LiveCharts - 橘子香气 - 博客园 (cnblogs.com)

WPF LiveChart 图表详解 - 痕迹g - 博客园 (cnblogs.com)

更多资源请参考官方源码。

 

出处:https://www.cnblogs.com/seabluescn/p/15980609.html

posted on   jack_Meng  阅读(2181)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
历史上的今天:
2021-03-09 利用VS自带的xsd.exe工具,根据XML自动生成XSD,生成实体类CS
2020-03-09 WPF——给button添加背景图片
2020-03-09 WPF 异步加载数据
2019-03-09 依赖注入 ---- 系列文章
2019-03-09 学习Unity -- 理解依赖注入(IOC)三种方式依赖注入
2019-03-09 C# winform 打开主界面并关闭登录界面
2019-03-09 c#利用ApplicationContext类 同时启动双窗体的实现

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示

喜欢请打赏

扫描二维码打赏

支付宝打赏

主题色彩