编辑
2025-09-25
C#
00

目录

摘要
正文
LineSeries 为线条系列
显示XY点

摘要


LiveCharts2 是一款强大的数据可视化工具,它可以帮助用户轻松地创建各种类型的图表,包括折线图。折线图是一种常见的图表类型,它可以用来展示数据随时间变化的趋势和模式。

在实际应用中,折线图被广泛用于展示各种类型的数据,例如销售数据、股票价格、气象数据等。它可以帮助用户快速了解数据的趋势和模式,并进行有效的决策和规划。

正文


.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

LineSeries 为线条系列

LineSmoothness:使用直线平滑属性来控制曲线,使用直线平滑属性来控制曲线

GeometrySize:节点的尺寸

Fill:设置填充属性来创建一个区域系列,默认情况下,该系列有一个基于应用程序主题的填充颜色

写一个模型

C#
public class LineModel : ObservableObject { //这里是系列,对于这个例子就是几条线 public ISeries[] Series { get; set; } = { new LineSeries<double> { Values = Values(), Fill = new SolidColorPaint(SKColors.Blue),//填充区域,可为空 Name="生产", GeometrySize=2,//节点的尺寸 LineSmoothness=1,//使用直线平滑属性来控制曲线,使用直线平滑属性来控制曲线 }, new LineSeries<double> { Values = Values(), Fill = null, Name="工时", GeometrySize=1, LineSmoothness=0//折线明显 } }; public Axis[] Axis { get; set; } = { new Axis() { Name="A" } }; private static List<double> Values() { List<double> values = new List<double>(); Random random = new Random(); for (int i = 0; i < 10; i++) { values.Add(random.NextDouble() * 100); } return values; } }
C#
public partial class Form1 : Form { CartesianChart cartesianChart1 = new CartesianChart(); public Form1() { InitializeComponent(); //配制全局中文显示,不然会乱码 LiveCharts.Configure(x => { x.HasGlobalSKTypeface(SKFontManager.Default.MatchCharacter('汉')); }); Init(); } private void Init() { var lines = new LineModel(); //显示例图,这里只有设置了位置才会显示 cartesianChart1.LegendPosition = LiveChartsCore.Measure.LegendPosition.Left; cartesianChart1.LegendTextSize = 16; cartesianChart1.Series = lines.Series; cartesianChart1.XAxes = lines.Axis; cartesianChart1.ZoomMode = LiveChartsCore.Measure.ZoomAndPanMode.X; this.Controls.Add(cartesianChart1); cartesianChart1.Dock = DockStyle.Fill; } }

image.png

显示XY点

C#
public class LineModel : ObservableObject { //这里是系列,对于这个例子就是几条线 public ISeries[] Series { get; set; } = { new LineSeries<ObservablePoint> { Values = Values(), Fill =null, Name="生产", GeometrySize=2,//节点的尺寸 LineSmoothness=1,//使用直线平滑属性来控制曲线,使用直线平滑属性来控制曲线 }, }; public Axis[] Axis { get; set; } = { new Axis() { Name="A", MinStep = 1, ForceStepToMin=true//强制最小刻度显示 } }; private static List<ObservablePoint> Values() { List<ObservablePoint> values = new List<ObservablePoint>(); Random random = new Random(); for (int i = 0; i < 10; i++) { values.Add(new ObservablePoint((i+1)*2,random.NextDouble() * 100)); } return values; } }

image.png

本文作者:技术老小子

本文链接:

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