LiveCharts2 是一款强大的数据可视化工具,它可以帮助用户轻松地创建各种类型的图表,包括折线图。折线图是一种常见的图表类型,它可以用来展示数据随时间变化的趋势和模式。
在实际应用中,折线图被广泛用于展示各种类型的数据,例如销售数据、股票价格、气象数据等。它可以帮助用户快速了解数据的趋势和模式,并进行有效的决策和规划。
.net 6下需要单独安装
现在最新版本通过Nuget命令安装
https://www.nuget.org/packages/LiveChartsCore.SkiaSharpView.WinForms 下载最新的版本
NuGet\Install-Package LiveChartsCore.SkiaSharpView.WinForms -Version 2.0.0-beta.860
安装CommunityToolkit.Mvvm.ComponentModel
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;
}
}
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;
}
}
本文作者:技术老小子
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!