LiveCharts2:简单灵活交互式且功能强大的.NET图表库

前言

之前的文章中提到过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属性,如下所示:

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

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

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

添加控件:

 <lvc:CartesianChartSeries="{Binding Series}"></lvc:CartesianChart>

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

 public partial class LiveCharts2Demo : Window{public LiveCharts2Demo(){InitializeComponent();this.DataContext = new LiveChart2DemoViewModel();}}

实现效果如下:

image-20240618084340410

画饼图

将Series属性修改为:

 public ISeries[] Series { get; set; }= new ISeries[]{new PieSeries<double> { Values = new double[] { 2 } },new PieSeries<double> { Values = new double[] { 4 } },new PieSeries<double> { Values = new double[] { 1 } },new PieSeries<double> { Values = new double[] { 4 } },new PieSeries<double> { Values = new double[] { 3 } }};

添加控件:

<lvc:PieChartSeries="{Binding Series}">
</lvc:PieChart>

效果如下所示:

image-20240618084952398

画极坐标图

将Series属性修改为:

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

添加控件:

 <lvc:PolarChartSeries="{Binding Series}"></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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/29386.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

编程输出中间变量:深度解析与实战应用

编程输出中间变量&#xff1a;深度解析与实战应用 在编程过程中&#xff0c;中间变量是一个至关重要的概念。它们不仅有助于我们更好地理解和组织代码&#xff0c;还能提高程序的效率和可读性。那么&#xff0c;编程输出中间变量究竟是什么呢&#xff1f;本文将从四个方面、五…

一小时搞定JavaScript(2)——DOM与BOM的应用

前言,本篇文章是依据bilibili博主(波波酱老师)的学习笔记,波波酱老师讲的很好,很适合速成!!! 本篇文章会与java进行对比学习,因为JS中很多语法和java是相同的,所以大家最好熟悉Java语言后再来进行学习,效果更佳,见效更快. 文章目录 5.DOM和BOM5.1 DOM5.1.1传统元素获取5.1.2 C…

upload.dragger组件 拖拽上传到上传区域外时,浏览器自带下载、预览文件,如何禁止该默认事件【一步解决】

只需在非上传区域加下面两个事件&#xff0c;阻止默认行为 onDragOver{(e: any) > e.preventDefault()}//阻止浏览器默认拖拽下载事件onDrop{(e: any) > e.preventDefault()}>例如&#xff0c;我的拖拽上传区域在Modal内部&#xff0c;在modal外部加一个div 并指定上…

高考志愿填报,是选好专业,还是选好学校?过来人给你说说

分数限制下&#xff0c;选好专业还是选好学校&#xff1f; 到底是先选专业还是先选学校&#xff0c;是让考生及家长一直拿不准、辨不清的问题&#xff0c;是优先考虑学校还是专业&#xff0c;上了好学校&#xff0c;专业不喜欢就业前景不理想&#xff0c;怎么办&#xff1f;为…

【未来已来】AI大模型革命:向量数据库如何重塑智能世界?

在人工智能的浪潮中,向量数据库正成为推动AI大模型发展的幕后英雄。这不是简单的技术升级,而是一场关于智能未来的革命。本文将带您深入了解向量数据库如何成为AI大模型的核心竞争力,以及它如何助力我们在智能化的道路上加速前进。 向量数据库:AI大模型的心脏 想象一下…

vue echarts画多柱状图+多折线图

<!--多柱状图折线图--> <div class"echarts-box" id"multiBarPlusLine"></div>import * as echarts from echarts;mounted() {this.getMultiBarPlusLine() },getMultiBarPlusLine() {const container document.getElementById(multiBar…

Vue 3 的各生命周期使用场景

Vue 3 的生命周期相比于 Vue 2 有所不同&#xff0c;主要是因为 Vue 3 引入了 Composition API&#xff0c;改变了组件的书写方式和生命周期的调用顺序。以下是 Vue 3 中常用的生命周期钩子及其使用场景的通俗解释&#xff1a; ** 更新阶段 ** onBeforeUpdate 什么时候调用&a…

图书管理系统代码(Java)

1、运行演示 QQ2024528-205028-HD 详细讲解在这篇博客&#xff1a;JavaSE&#xff1a;图书管理系统-CSDN博客 2、所建的包 3、Java代码 3.1 book包 3.1.1 Book类代码 package book;/*** Created with IntelliJ IDEA.* Description:* User: dings* Date: 2024-05-13* Time:…

MyBatis 自定义映射 ResultMap:字段与属性的映射详解

在 MyBatis 框架中&#xff0c;ResultMap是一个非常强大的功能&#xff0c;它允许我们自定义SQL查询结果与Java对象之间的映射关系。特别是在数据库字段名和Java对象属性名不一致时&#xff0c;ResultMap能够帮助我们精确地映射数据。 ResultMap 的基本使用 若字段名和实体类…

量化交易之日内回转策略:如何利用MACD指标实现盈利?

哈喽,大家好,我是木头左! 日内回转策略是一种短线交易策略,其核心思想是在一天内通过买入和卖出股票来实现利润。这种策略的主要优点是可以在短期内获取较高的收益,同时风险相对较小。日内回转策略主要适用于个股波动较大、流动性较好的股票。本文将详细介绍日内回转策略的…

押注“人类终极能源”!OpenAI与核聚变公司Helion Energy洽谈“购买大量”聚变能源

内容提要 在当下&#xff0c;由 AI 引发的新一轮能源危机已经不再是一个小概率的“黑天鹅”事件&#xff0c;而是一头正在向我们猛冲而来的“灰犀牛”。 文章正文 Helion Energy&#xff0c;是一家总部位于美国华盛顿州埃弗雷特的能源创业公司。 这家成立于 2013 年的公司在…

GPU性能相关的工具

GPU性能相关的工具 GPU的性能测试工具比较多&#xff0c;已知的各个开发厂家是有自己开发的性能测试工具&#xff0c;一般市场上开源或通用的性能测试工具&#xff0c;主要是跑定制的渲染场景&#xff0c;统计平均帧率&#xff0c;经过包装得到跑分值。 整体上可以分成两类&am…

华为Atlas NPU ffmpeg 编译安装

处理器&#xff1a;鲲鹏920 NPU&#xff1a;昇腾 310P3 操作系统&#xff1a;Kylin Linux Advanced Server V10 CANN&#xff1a;Ascend-cann-toolkit_8.0.RC1_linux-aarch64.run FFmpeg&#xff1a;AscendFFmpegPlugin(不要用AscendFFmpeg) AscendFFmpegPlugin下载地址&…

安卓实现圆形按钮轮廓以及解决无法更改按钮颜色的问题

1.实现按钮轮廓 在drawable文件新建xml文件 <shape xmlns:android"http://schemas.android.com/apk/res/android"<!--实现圆形-->android:shape"oval"><!--指定内部的填充色--><solid android:color"#FFFFFF"/><!-…

【挑战100天首通《谷粒商城》】-【第一天】06、环境-使用vagrant快速创建linux虚拟机

文章目录 课程介绍1、安装 linux 虚拟机2、安装 VirtualBoxStage 1&#xff1a;开启CPU虚拟化Stage 2&#xff1a;下载 VirtualBoxStage 2&#xff1a;安装 VirtualBoxStage 4&#xff1a;安装 VagrantStage 4-1&#xff1a;Vagrant 下载Stage 4-2&#xff1a;Vagrant 安装Stag…

CentOS 7.9上创建JBOD(一)

系列文章目录 CentOS 7.9上创建的JBOD阵列恢复&#xff08;二&#xff09; CentOS 7.9检测硬盘坏区、实物定位&#xff08;三&#xff09; 文章目录 系列文章目录前言一、安装 mdadm工具二、创建JBOD设备三、为JBOD扩容&#xff08;增加一个硬盘&#xff09;四、最后&#xff…

MySQL修改用户权限(宝塔)

在我们安装好的MySQL中&#xff0c;很可能对应某些操作时&#xff0c;不具备操作的权限&#xff0c;如下是解决这些问题的方法 我以宝塔创建数据库为例&#xff0c;创建完成后&#xff0c;以创建的用户名和密码登录 这里宝塔中容易发生问题的地方&#xff0c;登录不上去&#…

STM32单片机-通信协议(下)

STM32单片机-通信协议(下&#xff09; 一、通信协议介绍二、USART(通用同步/异步收发器)2.1 USART框图和基本结构2.2 串口发送2.2.1 Printf函数移植2.2.2 串口发送汉字 2.3 串口接收2.3.1 串口接收查询2.3.2 串口接收中断 2.4 USART串口数据包2.4.1 数据包格式2.4.2 数据包接收…

企业数字化转型好帮手蚓链,超多创新亮点等你来!

家人们&#xff0c;今天必须给大家分享一下蚓链这个超棒的数字化转型好帮手呀&#xff01; 在理念创新上&#xff0c;它做到了以用户为中心&#xff0c;给大家带来精准化、个性化的营销体验呢。 组织创新也超厉害&#xff0c;搭建了开放式创新平台&#xff0c;吸引外部合作伙伴…

gitlab2024最新版安装

系统&#xff1a;redhat9.0 gitlab版本&#xff1a;gitlab-ce-16.10.7-ce.0.el9.x86_64.rpm 安装组件&包依赖&#xff1a;https://packages.gitlab.com/gitlab/gitlab-ce/packages/ol/9/gitlab-ce-16.10.7-ce.0.el9.x86_64.rpm 参考&#xff1a; 前提&#xff1a; 下载gitl…