[Dotnet 工具箱]跨平台图表库 LiveCharts2

科技资讯 投稿 6500 0 评论

[Dotnet 工具箱]跨平台图表库 LiveCharts2

LiveCharts2

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

图表示例

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

在控制台程序中生成图像

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 模拟器

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

    塞尔达传说:荒野之息 (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 还拥有一个活跃的社区,可以帮助用户解决问题并提供支持。

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

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

安装

使用 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 时,基本上不需更改代码。

services.AddMapster(;

然后和 DI 一起使用

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

为什么选择 Mapster?

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

测试报告

项目地址:https://github.com/MapsterMapper/Mapster

编程笔记 » [Dotnet 工具箱]跨平台图表库 LiveCharts2

赞同 (32) or 分享 (0)
游客 发表我的评论   换个身份
取消评论

表情
(0)个小伙伴在吐槽