编辑
2025-09-25
C#
00

目录

摘要
正文
PieSeries 为饼系列

摘要

LiveCharts2是一个用于.NET应用程序的交互式可视化库,提供了丰富的图表类型和样式,包括饼图。使用LiveCharts2,您可以轻松地在您的Winform应用程序中创建美观、交互式的饼图。

饼图是一种常用的数据可视化图表类型,可以帮助人们更直观地了解数据之间的比例关系。它广泛应用于分析市场份额、收入结构、比较不同组织之间的关系以及表示个人或群体在某一领域中的成就等方面。

举个例子,如果一家公司想要了解不同产品线在整体销售额中所占的比例,就可以使用饼图来表示。这有助于管理层更好地了解公司的销售情况,并做出更明智的决策。同样地,如果一家公司想要了解不同收入来源在整体收入中所占的比例,也可以使用饼图来表示。

此外,饼图还可以帮助人们比较不同组织之间的关系,例如家庭成员之间的分工关系。通过将每个成员的贡献量用饼图来表示,可以帮助人们更直观地了解家庭成员之间的分工关系,并做出更合理的安排。

最后,饼图还可以用来表示个人或群体在某一领域中的成就。例如,一位学生的学习成绩可以用饼图来表示各科成绩在总分中所占的比例,这有助于学生了解自己在各个科目上的表现,并找到需要加强的方面。

正文

.net 6下需要单独安装

现在最新版本通过Nuget命令安装

https://www.nuget.org/packages/LiveChartsCore.SkiaSharpView.WinForms 下载最新的版本

NuGet\Install-Package LiveChartsCore.SkiaSharpView.WinForms -Version 2.0.0-beta.860

image.png

安装CommunityToolkit.Mvvm.ComponentModel

image.png

PieSeries 为饼系列

Pushout:每块之间的间隔

InnerRadius :可以设置内部环

image.png

MaxOuterRadius:外环比例

image.png

Title:这个图的标题,这里是用LabelVisual,一定注意Paint这个。

写一个模型

C#
public class PieModel : ObservableObject { public ISeries[] Series { get; set; } = { new PieSeries<double> { Values = new double[] { 2 }, Name = "工位1",Pushout=4 }, new PieSeries<double> { Values = new double[] { 4 }, Name = "工位2",InnerRadius=50 }, new PieSeries<double> { Values = new double[] { 1 }, Name = "工位3",MaxOuterRadius=0.5 }, }; public LabelVisual Title { get; set; } = new LabelVisual { Text = "产能", TextSize = 25, Padding = new LiveChartsCore.Drawing.Padding(15), Paint = new SolidColorPaint(SKColors.DarkSlateGray) }; }
C#
public partial class Form4 : Form { PieChart pieChart; PieModel viewModel = new PieModel(); public Form4() { InitializeComponent(); //配制全局中文显示,不然会乱码 LiveCharts.Configure(x => { x.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('汉')); }); Init(); } public void Init() { pieChart = new PieChart { Series = viewModel.Series, Title = viewModel.Title, LegendPosition = LiveChartsCore.Measure.LegendPosition.Right, }; this.Controls.Add(pieChart); pieChart.Dock = DockStyle.Fill; } }

image.png

看到这个一定会想,为什么一个环是数组?

C#
new PieSeries<double> { Values = new double[] { 2 }, Name = "工位1",Pushout=4 },

修改一下代码

C#
public ISeries[] Series { get; set; } = { new PieSeries<double> { Values = new double[] { 2,3,4}, Name = "工位1",Pushout=4 }, new PieSeries<double> { Values = new double[] { 4,4,5 }, Name = "工位2",InnerRadius=50 }, new PieSeries<double> { Values = new double[] { 1,2,3 }, Name = "工位3",MaxOuterRadius=0.5 }, };

image.png

本文作者:技术老小子

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!