.NET 美观、功能强大的图表库 LiveCharts2

1,889 阅读3分钟

前言

简单、灵活、交互性强且功能强大的图表、地图和仪表库,LiveCharts2 现在几乎可以在所有平台上运行,包括 MAUI、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI 和 UWP。

项目介绍

LiveCharts2 是一个基于 MIT 许可证的开源 .NET 库,它提供了免费、美观、简洁、灵活且交互性强的图表、地图和仪表功能。

LiveCharts2 特点

  • 跨平台支持:适用于多种 .NET 平台,如 MAUI、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI 和 UWP。

  • 开源与免费:遵循 MIT 许可证,可以自由地用于商业项目。

  • 美观性:提供吸引人的视觉效果,使数据呈现更加美观。

  • 易用性:设计简洁直观,易于集成到现有的 .NET 应用程序中。

  • 灵活性:允许高度定制化,满足不同的需求。

  • 交互性:支持用户交互,如触摸和悬停效果,提升用户体验。

  • 功能丰富:支持多种图表类型,如柱状图、折线图、饼图等,并且能够绘制地图和仪表盘。

这些特点让 LiveCharts2 成为一个强大的工具,适用于需要高质量数据可视化的 .NET 开发项目。

WPF示例

1、安装 LiveChartsCore 包

LiveCharts2 支持多种 .NET 平台,这里我们选择 WPF。

虽然通过 NuGet 搜索可能会找到旧版本的 LiveCharts,但 LiveCharts2 相对于 V0 进行了许多改进和修复。

尽管 LiveCharts2 目前仍处于测试版,我们仍可通过官方指导进行安装。

<PackageReference Include="LiveChartsCore.SkiaSharpView.WPF" Version="2.0.0-rc3.3" />

我们将一并安装 CommunityToolkit.Mvvm,该库可通过 NuGet 获得。CommunityToolkit.Mvvm 是为了替代不再维护的 GalaSoft.MVVM-light 而推出的,提供了平滑的迁移途径。

2、新建WPF项目

创建空白的WPF项目,然后新建一个MainViewModel,添加引用,具体如代码下:

using CommunityToolkit.Mvvm.ComponentModel;
using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Painting;
using LiveChartsCore.SkiaSharpView.VisualElements;
using LiveChartsCore.VisualElements;
using SkiaSharp;

namespace DotNetCore.WpfDemo
{
    [ObservableObject]
    public partial class MainViewModel
    {
        /// <summary>
        /// 
        /// </summary>
        public ISeries[] Series { getset; } 
            =new ISeries[]
            {
                new ColumnSeries<double>                
                {                   
                    Values = new double[] { 2135346 },               
                },               
                new LineSeries<double>                
                {                    
                    Values = new double[] { 2135346 }, 
                    Fill = null                
                },
            };

        /// <summary>
        /// 
        /// </summary>
        public LabelVisual Title { getset; }
            = new LabelVisual
            { 
                Text = "标题",
                TextSize = 20, 
                Paint = new SolidColorPaint 
                { 
                    Color = SKColors.Black, 
                    SKTypeface = SKFontManager.Default.MatchCharacter('汉') 
                }, 
            };
    }
}

然后到MainWindow.xaml里,引用LiveCharts,设置DataContext,然后增加CartesianChart,具体代码如下所示:

<Window x:Class="DotNetCore.WpfDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
        xmlns:local="clr-namespace:DotNetCore.WpfDemo"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Window.DataContext>
        <local:MainViewModel />
    </Window.DataContext>
    <Grid>
        <lvc:CartesianChart Series="{Binding Series}" />
    </Grid>
</Window>

3、运行效果

启动运行,效果图如下:

设置的线形图,还可以设置柱状图

添加标题

项目效果

官方文档内容丰富,并附有详细的示例。

根据我们的需求,选择不同的平台以及需要的图表,按照文档示例操作,我们就可以看到不同效果。

上述仅展示了部分示例图,查阅官方文档可获得更多示例及详细信息。

项目地址

GitHub: github.com/beto-rodrig…

官网: www.lvcharts.com/

文档: livecharts.dev/docs/wpf/2.…

总结

LiveCharts2 是一个强大的 .NET 图表库,提供多种图表类型和灵活的配置选项,便于创建美观且交互性强的图表。

可以进行数据展示也可以进行可视化项目,LiveCharts2 大家赶快去试试吧。

希望本文能为朋友们在图表方面的开发带来帮助。欢迎大家在评论区留言讨论,分享您的经验和建议。

最后

如果你觉得这篇文章对你有帮助,不妨点个赞支持一下!你的支持是我继续分享知识的动力。如果有任何疑问或需要进一步的帮助,欢迎随时留言。

也可以加入微信公众号 [DotNet技术匠] 社区,与其他热爱技术的同行一起交流心得,共同成长!

优秀是一种习惯,欢迎大家留言学习!