【Dotnet 工具箱】跨平台图表库 LiveCharts2

这篇具有很好参考价值的文章主要介绍了【Dotnet 工具箱】跨平台图表库 LiveCharts2。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

你好,这里是 Dotnet 工具箱,定期分享 Dotnet 有趣,实用的工具和组件,希望对您有用!

LiveCharts2

LiveCharts2 是一个简单、灵活、交互式以及功能强大的跨平台图表库。

LiveCharts2 现在几乎可以在任何地方运行,包括 Maui、Uno Platform、Blazor-wasm、WPF、WinForms、Xamarin、Avalonia、WinUI、UWP。

LiveCharts2 (v2) 是LiveCharts (v0)的演变,它修复了其前身的主要设计问题,它专注于在任何地方运行,在不丢失在 v0 中已有的东西的情况下提高了灵活性。

LiveCharts2 的特点之一是性能优异,它使用了一些优化技巧,比如数据虚拟化、图形缓存、异步绘制等,能够在大数据量下仍然能保持良好的响应速度和渲染性能。另外,它还提供了丰富的文档和示例,方便开发者快速入手和使用。

图表示例

LiveCharts2 提供了多种类型的图表,包括折线图、面积图、柱状图、散点图、饼图等。同时,它还支持多个图表联动显示,支持动态更新数据、自定义样式和动画效果等功能。

在控制台程序中生成图像

LiveCharts 可以在不需要任何 UI 框架的情况下呈现图像,只要安装 SkiaSharp View 包,就可以在服务器端或控制台应用程序中构建图像,它可以从 NuGet 安装:

LiveChartsCore.SkiaSharpView
using LiveChartsCore;
using LiveChartsCore.Geo;
using LiveChartsCore.SkiaSharpView;
using LiveChartsCore.SkiaSharpView.Drawing.Geometries;
using LiveChartsCore.SkiaSharpView.SKCharts;

var cartesianChart = new SKCartesianChart
{
    Width = 900,
    Height = 600,
    Series = new ISeries[]
    {
        new LineSeries<int> { Values = new int[] { 1, 5, 4, 6 } },
        new ColumnSeries<int> { Values = new int[] { 4, 8, 2, 4 } }
    }
};

// you can save the image to png (by default)
// or use the second argument to specify another format.
cartesianChart.SaveImage("cartesianChart.png");

var pieChart = new SKPieChart
{
    Width = 900,
    Height = 600,
    Series = new ISeries[]
    {
        new PieSeries<int> { Values = new int[] { 10, } },
        new PieSeries<int> { Values = new int[] { 6 } },
        new PieSeries<int> { Values = new int[] { 4 } }
    }
};

pieChart.SaveImage("pieChart.png");

var geoHeatMap = new SKGeoMap
{
    Width = 900,
    Height = 600,
    Series = new IGeoSeries[]
    {
        new HeatLandSeries
        {
            Lands = new HeatLand[]
            {
                new() { Name = "mex", Value = 10 },
                new() { Name = "usa", Value = 15 },
                new() { Name = "can", Value = 8 }
            }
        }
    }
};

geoHeatMap.SaveImage("geoHeatMap.png");

// alternatively you can get the image and do different operations:
using var image = cartesianChart.GetImage();
using var data = image.Encode();
var base64CartesianChart = Convert.ToBase64String(data.AsSpan());

Console.WriteLine("Images saved at the root folder!");

项目地址: https://github.com/beto-rodriguez/LiveCharts2

Ryujinx - 基于 C# 开发的任天堂 Switch 模拟器

Ryujinx 是一个开源的任天堂 Switch 模拟器,可以在 PC 上模拟运行 Switch 游戏。由 gdkchan 创建,使用 C# 编写。这个模拟器旨在提供卓越的准确性和性能、用户友好的界面和一致的构建。它是从头开始编写的,该项目的开发是从 2017 年 9 月开始。

Ryujinx 是基于 C# 语言编写的,使用了 .NET Core 和 .NET Standard 技术,可跨平台运行在 Windows、Linux 和 macOS 等操作系统上。

截止到 2022 年 11 月,Ryujinx 已经在大约 3,800 个游戏上进行了测试;超过 3,600 个进入游戏,其中大约 3,200 个被认为是可玩的。 您可以在下面的链接查看兼容性列表。

https://github.com/Ryujinx/Ryujinx-Games-List/issues

以下是一些已经在 Ryujinx 上运行良好的知名游戏:

  • 塞尔达传说:荒野之息 (The Legend of Zelda: Breath of the Wild)
  • 精灵宝可梦:剑/盾 (Pokémon Sword/Shield)
  • 异度之刃2 (Xenoblade Chronicles 2)
  • 巨人的召唤 (Attack on Titan 2)
  • 火焰纹章:风花雪月 (Fire Emblem: Three Houses)
  • 超级马力欧 奥德赛 (Super Mario Odyssey)
  • 奥德赛战记 (Octopath Traveler)
  • 勇者斗恶龙 XI S:彩虹之岛版 (Dragon Quest XI S: Echoes of an Elusive Age

同时,Ryujinx 还拥有一个活跃的社区,可以帮助用户解决问题并提供支持。

项目地址:https://github.com/Ryujinx/Ryujinx

Mapper, 一个比 AutoMapper 更快的对象映射库

Mapster 是一个 .NET 库,它提供了一种简单的方式来实现对象之间的映射。它使用了一个基于约定的自动映射策略,让你可以轻松地将一个对象转换为另一个对象。

编写映射方法是一项机器工作。不要浪费你的时间,让 Mapster 来做吧。

安装

使用 NuGet CLI 安装 Mapster:

Install-Package Mapster

或者使用 .NET Core CLI 安装 Mapster:

dotnet add package Mapster

映射到新对象

var destObject = sourceObject.Adapt<Destination>();

映射到现有对象

sourceObject.Adapt(destObject);

依赖注入

还可以通过依赖注入获取 IMapper 实例,所以在从 automapper 迁移到 Mapster 时,基本上不需更改代码。

注入 Mapster 服务。

services.AddMapster();

然后和 DI 一起使用

public class Test
{
    public Test(IMapper mapper)
    {
        var sourceObject = mapper.Adapt<Destination>();
    }
}

为什么选择 Mapster?

Mapster 旨在提高速度和内存效率。它可以获得 4 倍的性能提升,同时仅仅使用了 1/3 的内存。并且可以获得高达 12 倍的性能提升。

测试报告

Mapster 是一个非常方便的库,它可以大大简化 .NET 项目中对象之间的映射工作,并且具有很好的可扩展性和灵活性。

项目地址:https://github.com/MapsterMapper/Mapster文章来源地址https://www.toymoban.com/news/detail-412105.html

到了这里,关于【Dotnet 工具箱】跨平台图表库 LiveCharts2的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • dotnet 的跨平台 UI 框架:WPF 的精神继承 | 开源日报 No.123

    Stars: 20.7k License: MIT Avalonia 是 dotnet 的跨平台 UI 框架,提供灵活的样式系统,并支持 Windows、macOS、Linux、iOS、Android 和 WebAssembly 等多种平台。它被许多人认为是 WPF 的精神继承者,为 XAML 开发人员创建跨平台应用程序提供了熟悉且现代化的开发体验。Avalonia XPF 可以使 WPF 应用在

    2024年02月03日
    浏览(51)
  • 跨平台图表:ChartDirector for .NET 7.1 Crack

    什么是新的 ChartDirector for .NET 7.0 支持跨平台使用,但仅限于 .NET 6。这是因为在 .NET 7 中,Microsoft 停止了用于非 Windows 使用的 .NET 图形库 System.Drawing.Common。由于 ChartDirector for .NET 7.0 依赖于该库,因此它不再支持 .NET 7 上的非 Windows 使用。 ChartDirector for .NET 7.1 NuGet 包现在包含一

    2024年02月11日
    浏览(53)
  • 一个跨平台的`ChatGPT`悬浮窗工具

    使用 avalonia 实现的 ChatGPT 的工具,设计成悬浮窗,并且支持插件。 在使用 avalonia 实现悬浮窗也是非常的简单的。 实现我们需要将窗体设置成无边框 在 Window 根节点添加一下属性,想要在Linux下生效请务必添加 SystemDecorations 属性 这样我们的窗口就设置成了无边框。 然后我们

    2024年02月11日
    浏览(42)
  • 跨平台数据备份工具之restic详解

    Restic 是一款 GO 语言开发的开源免费且快速、高效和安全的跨平台备份工具。Restic 使用加密技术来保证你的数据安全性和完整性,可以将本地数据加密后传输到指定的存储。 Restic 同样支持增量备份,可随时备份和恢复备份。Restic 支持大多数主流操作系统,比如:Linux、macO

    2024年02月21日
    浏览(50)
  • 好用的跨平台同步笔记工具,手机和电脑可同步的笔记工具

    在这个快节奏的工作环境中,每个人都在寻找一种方便又高效的方式来记录工作笔记。记录工作笔记可以帮助大家统计工作进展,了解工作进程,而如果工作中常在一个地方办公,直接选择电脑或者手机中笔记工具来记录即可,但是对于那些时常在不同地区出差的工作族,一

    2024年01月18日
    浏览(38)
  • 开源的跨平台的音视频处理工具FFmpeg

    FFmpeg是一个开源的跨平台的音视频处理工具,可以对音频、视频进行转码、裁剪、调节音量、添加水印等操作。 广泛的格式支持。 FFmpeg能够解码、编码、转码、复用、分离、流式传输、过滤和播放几乎人类和机器所创造的任何内容。它支持最古老且晦涩难懂的格式,也支持

    2024年02月15日
    浏览(63)
  • DBeaver:开源、跨平台、强大的数据库管理工具

    1.DBeaver 是什么 DBeaver 是一个流行的开源数据库客户端,它可以用于连接和管理多种不同类型的数据库系统,包括 MySQL、PostgreSQL、Oracle、Microsoft SQL Server 等等。 DBeaver 提供了一种直观的用户界面,允许用户执行各种数据库操作,如查询、修改、备份等等,同时也提供了一些高

    2024年01月25日
    浏览(77)
  • WEB跨平台桌面程序构建工具对比(Electron、Tauri、Wails)

    WEB 跨平台 桌面应用程序 顾名思义就是用 JavaScript、HTML、CSS 等前端技术构建跨平台的桌面应用,WEB 负责 GUI 渲染并与后端(如 Node.js、Python、Rust 等)交互,从而突破自身无法操作 OS 层级资源的限制。其实现在如火如荼的 小程序 原理也类似,只是把后端换成宿主 APP (如微信

    2024年02月05日
    浏览(50)
  • 无损剪切音视频文件的跨平台工具: LosslessCut | 开源日报 0908

    Stars: 17.3k License: GPL-2.0 LosslessCut是一款跨平台的FFmpeg GUI工具,它可以对视频、音频和字幕等相关媒体文件进行快速无损操作。 该软件最主要的功能是无损剪切和裁剪音视频文件,可以使用它快速提取出好的部分并丢弃其余片段而不会损失质量,这非常适合用于处理从摄像机、

    2024年02月07日
    浏览(40)
  • flutterui构建工具,Java+性能优化+APP开发+NDK+跨平台技术

    面试的时候除了算法题,其他被怼成弟弟,没想到面试官给过了,一天面完三面并且一周之后收到了oc,觉得自己非常的幸运,终于得到了大厂的认可(虽然是颗白菜)。这里建议网友如果有自己亮点的话,还是可以勇敢大胆的尝试一下大厂,毕竟除了实力之外,运气与机遇也占

    2024年03月15日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包