最近接手一个小项目,需要做一个数据显示大屏,要能显示曲线,显示进出量,重点是要好看
我哪知道什么是好看,就随便做做呗。.
数据都是假的,只是做出一个效果。显示这种数据图,使用的是LiveCharts2。这是一个非常漂亮的Charts模块。官网如下:
https://www.lvcharts.com/
Install-Package LiveChartsCore.SkiaSharpView.WPF -Version 2.0.0-beta.701
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using LiveChartsCore;
using LiveChartsCore.SkiaSharpView;
using CommunityToolkit.Mvvm.ComponentModel;
namespace LiveChartsDemo
{
[ObservableObject]
public partial class MainViewModel
{
public ISeries[] Series { get; set; }
= new ISeries[]
{
new LineSeries<double>
{
Values = new double[] { 2, 1, 3, 5, 3, 4, 6 },
Fill = null
}
};
}
}
xmlns:lvc="clr-namespace:LiveChartsCore.SkiaSharpView.WPF;assembly=LiveChartsCore.SkiaSharpView.WPF"
<Window.DataContext>
<local:MainViewModel />
</Window.DataContext>
<Grid>
<lvc:CartesianChart Series="{Binding Series}" />
</Grid>
public ISeries[] Series { get; set; }
= new ISeries[]
{
new ColumnSeries<double>
{
Values = new double[] { 2, 1, 3, 5, 3, 4, 6 },
},
new LineSeries<double>
{
Values = new double[] { 2, 1, 3, 5, 3, 4, 6 },
Fill = null
},
};
public LabelVisual Title { get; set; }
= new LabelVisual
{
Text = "Title",
TextSize=20,
Paint = new SolidColorPaint(SKColors.Black)
};
<lvc:CartesianChart Series="{Binding Series}" Title="{Binding Title}"/>
public LabelVisual Title { get; set; }
= new LabelVisual
{
Text = "标题",
TextSize=20,
Paint = new SolidColorPaint(SKColors.Black)
};
public LabelVisual Title { get; set; }
= new LabelVisual
{
Text = "标题",
TextSize=20,
Paint = new SolidColorPaint {
Color = SKColors.Black,
SKTypeface = SKFontManager.Default.MatchCharacter('汉')
},
};
https://www.lvcharts.com/docs/WPF/2.0.0-beta.700/gallery
据说免费的LiveCharts在数据量超过10000渲染效果会不好,需要使用付费版。这个我还没有验证,读者可以自行尝试一下。