经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » JS/JS库/框架 » Echarts » 查看文章
LiveCharts2:简单灵活交互式且功能强大的.NET图表库
来源:cnblogs  作者:mingupupup  时间:2024/6/19 15:18:28  对本文有异议

前言

之前的文章中提到过ScottPlot、与oxyplot,这两个是比较常用的.NET图表库,今天介绍一款新的.NET图表库:LiveCharts2。

LiveCharts2介绍

LiveCharts2 是一个现代化的数据可视化库,用于创建动态和交互式图表,支持 .NET 平台。它是 LiveCharts 的进化版,旨在提供更高性能、更灵活和更易于使用的图表解决方案。LiveCharts2 支持多种图表类型,包括折线图、柱状图、饼图、散点图等,适用于各种数据展示需求。

该库采用 MVVM(Model-View-ViewModel)设计模式,方便开发者在应用中进行数据绑定和动态更新。LiveCharts2 强调性能优化,能够处理大量数据并提供流畅的交互体验。

GitHub上的介绍如下:

Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can now practically run everywhere Maui, Uno Platform, Blazor-wasm, WPF, WinForms, Xamarin, Avalonia, WinUI, UWP.

简单、灵活、交互式且功能强大,适用于 .NET的图表、地图和仪表库,现在可以在 Maui、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI、UWP上运行。

截止写这篇文章,该项目获得了4k个Starts。

image-20240618082958171

简单使用

画折线图

安装NuGet包:

image-20240618083733291

需要点击包含预发行版才会出现。

在ViewModel中添加一个Series属性,如下所示:

  1. public partial class LiveChart2DemoViewModel : ObservableObject
  2. {
  3. public ISeries[] Series { get; set; }
  4. = new ISeries[]
  5. {
  6. new LineSeries<double>
  7. {
  8. Values = new double[] { 2, 1, 3, 5, 3, 4, 6 },
  9. Fill = null
  10. }
  11. };
  12. }

在xaml页面,添加命名空间,如下所示:

  1. xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"

添加控件:

  1. <lvc:CartesianChart
  2. Series="{Binding Series}">
  3. </lvc:CartesianChart>

最后不要忘了设置页面的DataContext,如下所示:

  1. public partial class LiveCharts2Demo : Window
  2. {
  3. public LiveCharts2Demo()
  4. {
  5. InitializeComponent();
  6. this.DataContext = new LiveChart2DemoViewModel();
  7. }
  8. }

实现效果如下:

image-20240618084340410

画饼图

将Series属性修改为:

  1. public ISeries[] Series { get; set; }
  2. = new ISeries[]
  3. {
  4. new PieSeries<double> { Values = new double[] { 2 } },
  5. new PieSeries<double> { Values = new double[] { 4 } },
  6. new PieSeries<double> { Values = new double[] { 1 } },
  7. new PieSeries<double> { Values = new double[] { 4 } },
  8. new PieSeries<double> { Values = new double[] { 3 } }
  9. };

添加控件:

  1. <lvc:PieChart
  2. Series="{Binding Series}">
  3. </lvc:PieChart>

效果如下所示:

image-20240618084952398

画极坐标图

将Series属性修改为:

  1. public ISeries[] Series { get; set; } = new[]
  2. {
  3. new PolarLineSeries<double>
  4. {
  5. Values = new double[] { 15, 14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1 },
  6. Fill = null,
  7. IsClosed = false
  8. }
  9. };

添加控件:

  1. <lvc:PolarChart
  2. Series="{Binding Series}">
  3. </lvc:PolarChart>

效果如下所示:

image-20240618085846273

更多示例可见官网:

image-20240618090119187

image-20240618090142712

image-20240618090209510

image-20240618090229147

image-20240618090245260

image-20240618090444553

image-20240618090511874

image-20240618090538301

image-20240618090559277

image-20240618090634897

image-20240618090652135

image-20240618090714760

官网提供了多种多样的样式,可以根据自己的需求,去官网上选择合适的图表样式。

参考

1、beto-rodriguez/LiveCharts2: Simple, flexible, interactive & powerful charts, maps and gauges for .Net, LiveCharts2 can now practically run everywhere Maui, Uno Platform, Blazor-wasm, WPF, WinForms, Xamarin, Avalonia, WinUI, UWP. (github.com)

2、LiveCharts - LiveCharts2

原文链接:https://www.cnblogs.com/mingupupu/p/18253741

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号