WpfApp/Utils/InitChart.cs

59 lines
1.5 KiB
C#
Raw Permalink Normal View History

2025-10-11 15:36:43 +08:00
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 ?? ""
});
}
}