fix: 그래프 스타일 적용

prototype
HyungJune Kim 7 months ago
parent 18b7a31ee7
commit 59865bc040

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

Loading…
Cancel
Save