diff --git a/SmartAquaViewer/ViewModel/GraphControlViewModel.cs b/SmartAquaViewer/ViewModel/GraphControlViewModel.cs index d540bb1..aedb43a 100644 --- a/SmartAquaViewer/ViewModel/GraphControlViewModel.cs +++ b/SmartAquaViewer/ViewModel/GraphControlViewModel.cs @@ -30,7 +30,7 @@ namespace SmartAquaViewer.ViewModel private void ApplyCommonAxisSettings(Axis axis, string title, AxisPosition position) { axis.Position = position; - axis.Title = title; + if (!string.IsNullOrEmpty(title)) axis.Title = title; axis.TitleFontSize = 14; axis.FontSize = 12; axis.MajorGridlineStyle = LineStyle.Solid; @@ -150,20 +150,19 @@ namespace SmartAquaViewer.ViewModel Model.Axes.Clear(); var xAxis = new DateTimeAxis { - Position = AxisPosition.Bottom, - Title = "시간", StringFormat = "HH:mm:ss", IntervalType = DateTimeIntervalType.Minutes, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot, }; + ApplyCommonAxisSettings(xAxis, "시간", AxisPosition.Bottom); + var yAxis = new LinearAxis { - Position = AxisPosition.Left, - Title = dataType == DataType.Energy ? "전력 (kW)" : "온실가스 (tCO₂)", MajorGridlineStyle = LineStyle.Solid, MinorGridlineStyle = LineStyle.Dot }; + string yTitle = dataType == DataType.Energy ? "전력 (kW)" : "온실가스 (tCO₂)"; + ApplyCommonAxisSettings(yAxis, yTitle, AxisPosition.Left); + Model.Axes.Add(xAxis); Model.Axes.Add(yAxis); @@ -221,27 +220,14 @@ namespace SmartAquaViewer.ViewModel Axis xAxis = xIsTime ? new DateTimeAxis { - Position = AxisPosition.Bottom, - Title = xField.Display, StringFormat = "HH:mm:ss", IntervalType = DateTimeIntervalType.Minutes, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot } - : new LinearAxis - { - Position = AxisPosition.Bottom, - Title = xField.Display, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot - }; - var yAxis = new LinearAxis - { - Position = AxisPosition.Left, - Title = yField!.Display, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot - }; + : new LinearAxis(); + ApplyCommonAxisSettings(xAxis, xField.Display, AxisPosition.Bottom); + + var yAxis = new LinearAxis(); + ApplyCommonAxisSettings(yAxis, yField.Display, AxisPosition.Left); Model.Axes.Add(xAxis); Model.Axes.Add(yAxis); @@ -315,18 +301,15 @@ namespace SmartAquaViewer.ViewModel // 축 var xAxis = new CategoryAxis { - Position = AxisPosition.Bottom, GapWidth = 0.3, IsPanEnabled = false, IsZoomEnabled = false }; - var yAxis = new LinearAxis - { - Position = AxisPosition.Left, - Title = valueField.Name, - MinorGridlineStyle = LineStyle.Dot, - MajorGridlineStyle = LineStyle.Solid - }; + ApplyCommonAxisSettings(xAxis, string.Empty, AxisPosition.Bottom); + + var yAxis = new LinearAxis(); + ApplyCommonAxisSettings(yAxis, valueField.Name, AxisPosition.Left); + Model.Axes.Add(xAxis); Model.Axes.Add(yAxis); @@ -418,24 +401,15 @@ namespace SmartAquaViewer.ViewModel bool xIsTime = string.Equals(xAxisField.Name, "RecordedTime", StringComparison.OrdinalIgnoreCase); Axis xAxis = xIsTime - ? new DateTimeAxis - { - Position = AxisPosition.Bottom, - Title = xAxisField.Display, - StringFormat = "MM-dd\nHH:mm" + ? new DateTimeAxis + { + StringFormat = "MM-dd\nHH:mm" } - : new LinearAxis - { - Position = AxisPosition.Bottom, - Title = xAxisField.Display, - }; - var yAxis = new LinearAxis - { - Position = AxisPosition.Left, - Title = yAxisField.Display, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot - }; + : new LinearAxis(); + ApplyCommonAxisSettings(xAxis, xAxisField.Display, AxisPosition.Bottom); + + var yAxis = new LinearAxis(); + ApplyCommonAxisSettings(yAxis, yAxisField.Display, AxisPosition.Left); Model.Axes.Add(xAxis); Model.Axes.Add(yAxis); @@ -552,7 +526,8 @@ namespace SmartAquaViewer.ViewModel Position = AxisPosition.Bottom, Title = "시간", GapWidth = 0.2, - Angle = 45 + Angle = 45, + TickStyle = TickStyle.None }; foreach (var r in rows) @@ -564,7 +539,8 @@ namespace SmartAquaViewer.ViewModel Model.Axes.Add(new LinearAxis { Position = AxisPosition.Left, - Title = "값" + Title = "값", + TickStyle = TickStyle.None }); foreach (var field in yAxisFields) @@ -677,21 +653,15 @@ namespace SmartAquaViewer.ViewModel // X축: 시간 var xAxis = new DateTimeAxis { - Position = AxisPosition.Bottom, - Title = "시간", StringFormat = "HH:mm:ss", IntervalType = DateTimeIntervalType.Minutes, - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot }; + ApplyCommonAxisSettings(xAxis, "시간", AxisPosition.Bottom); + // Y축: 전력 - var yAxis = new LinearAxis - { - Position = AxisPosition.Left, - Title = dataType == DataType.Energy ? "전력 (kW)" : "온실가스 (tCO₂)", - MajorGridlineStyle = LineStyle.Solid, - MinorGridlineStyle = LineStyle.Dot - }; + var yAxis = new LinearAxis(); + string yTitle = dataType == DataType.Energy ? "전력 (kW)" : "온실가스 (tCO₂)"; + ApplyCommonAxisSettings(yAxis, yTitle, AxisPosition.Left); Model.Axes.Add(xAxis); Model.Axes.Add(yAxis); @@ -792,8 +762,9 @@ namespace SmartAquaViewer.ViewModel StartAngle = 0, StrokeThickness = 0.5, InsideLabelFormat = "{1}\n {0:F2}", - InsideLabelPosition = 0.8, - OutsideLabelFormat = null // 라벨은 내부만 + InsideLabelPosition = 0.5, + OutsideLabelFormat = null, // 라벨은 내부만 + FontSize = 14, }; if (donut) ps.InnerDiameter = 0.6; // 도넛 모드