59 lines
1.5 KiB
C#
59 lines
1.5 KiB
C#
using LiveCharts;
|
|
using LiveCharts.Wpf;
|
|
using System.Windows.Media;
|
|
using WpfApp.src.config;
|
|
|
|
namespace WpfApp.Utils;
|
|
|
|
public static class InitChart
|
|
{
|
|
public static void InitCartesianChart(CartesianChart chart, ChartConfig config)
|
|
{
|
|
chart.Series = new SeriesCollection();
|
|
|
|
// 柱状图
|
|
if (config.ColumnData != null && config.ColumnData.Count > 0)
|
|
{
|
|
chart.Series.Add(new ColumnSeries
|
|
{
|
|
Title = "柱状数据",
|
|
Values = new ChartValues<double>(config.ColumnData)
|
|
});
|
|
}
|
|
|
|
// 标准线条
|
|
foreach (var line in config.LineConfigs)
|
|
{
|
|
var lineSeries = new LineSeries
|
|
{
|
|
Title = line.Title,
|
|
Values = new ChartValues<double>(line.Values),
|
|
Stroke = line.Stroke ?? Brushes.Black,
|
|
StrokeThickness = 2,
|
|
Fill = Brushes.Transparent,
|
|
DataLabels = line.ShowLabel,
|
|
};
|
|
|
|
if (line.ShowLabel)
|
|
lineSeries.LabelPoint = value => $"{value.Y:0.##} {line.Unit}";
|
|
|
|
chart.Series.Add(lineSeries);
|
|
}
|
|
|
|
// X轴
|
|
chart.AxisX.Clear();
|
|
chart.AxisX.Add(new Axis
|
|
{
|
|
Title = config.XTitle ?? "",
|
|
Labels = config.Labels
|
|
});
|
|
|
|
// Y轴
|
|
chart.AxisY.Clear();
|
|
chart.AxisY.Add(new Axis
|
|
{
|
|
Title = config.YTitle ?? ""
|
|
});
|
|
}
|
|
}
|