diff --git a/GraphDrawer/Program.cs b/GraphDrawer/Program.cs index b2fc0a64581775c237d26451ab8ac4bb63508db4..9cde53c0c72c3d218dc9ac49047fb55b564140b4 100644 --- a/GraphDrawer/Program.cs +++ b/GraphDrawer/Program.cs @@ -21,17 +21,24 @@ Tool for plotting graphs comparing Vecto 2.2 and Vecto 3 private static void Main(string[] args) { if (args.Contains("--split")) { + Console.WriteLine("plotting graphs splitted by distance"); var idx = Array.FindIndex(args, x => x == "--split"); var lenght = int.Parse(args[idx + 1]); var success = true; var start = 0; do { + Console.WriteLine("plotting {0} - {1}", start / 1000, (start + lenght) / 1000); success = GraphWriter.WriteDistanceSlice(args[0], args[1], start, start + lenght); start += lenght; } while (success); + Console.WriteLine("plotting full cycle"); GraphWriter.Write(args[0], args[1]); + Console.WriteLine("done"); + return; } + Console.WriteLine("plotting graphs..."); GraphWriter.Write(args[0], args[1]); + Console.WriteLine("done"); } } } \ No newline at end of file diff --git a/VectoCoreTest/Utils/GraphWriter.cs b/VectoCoreTest/Utils/GraphWriter.cs index cda940f97b9937f78ab60a1b0cbd05e601f5937b..4c62b9881a821257d457bbd8fe5f7b4050de78b4 100644 --- a/VectoCoreTest/Utils/GraphWriter.cs +++ b/VectoCoreTest/Utils/GraphWriter.cs @@ -91,6 +91,25 @@ namespace TUGraz.VectoCore.Tests.Utils if (yfield == ModalResultField.v_act) { var y3 = LoadData(modDataV3, ModalResultField.v_targ.GetName()); var series3 = CreateSeries("v_target", legend, chartArea, chart, Color.Green, x, y3); + + var grad = LoadData(modDataV3, ModalResultField.grad.GetName()); + + chartArea.AxisY2.Enabled = AxisEnabled.True; + chartArea.AxisY2.Title = "gradient [%]"; + chartArea.AxisY2.TitleFont = AxisTitleFont; + chartArea.AxisY2.LabelStyle.Font = AxisLabelFont; + chartArea.AxisY2.LabelAutoFitStyle = LabelAutoFitStyles.None; + chartArea.AxisY2.MinorGrid.Enabled = false; + chartArea.AxisY2.MajorGrid.Enabled = false; + var max = Math.Max(-Math.Round(grad.Min() * 2), Math.Round(grad.Max() * 2)); + //chartArea.AxisY2.si + //chartArea.AxisY2.Minimum = -max; + //chartArea.AxisY2.Maximum = max; + chartArea.AxisY2.RoundAxisValues(); + chartArea.AxisY2.Interval = Math.Round(max / 5); + + var seriesGrad = CreateSeries("Gradient", legend, chartArea, chart, Color.Coral, x, grad); + seriesGrad.YAxisType = AxisType.Secondary; } var series1 = CreateSeries(string.Format("Vecto 3 - {0}", yfield), legend, chartArea, chart, @@ -197,16 +216,34 @@ namespace TUGraz.VectoCore.Tests.Utils if (yfield == ModalResultField.v_act) { var y3 = LoadData(modDataV3, ModalResultField.v_targ.GetName()); var series3 = CreateSeries("v_target", legend, chartArea, chart, Color.Green, x, y3); + + var grad = LoadData(modDataV3, ModalResultField.grad.GetName()); + + chartArea.AxisY2.Enabled = AxisEnabled.True; + chartArea.AxisY2.Title = "gradient [%]"; + chartArea.AxisY2.TitleFont = AxisTitleFont; + chartArea.AxisY2.LabelStyle.Font = AxisLabelFont; + chartArea.AxisY2.LabelAutoFitStyle = LabelAutoFitStyles.None; + chartArea.AxisY2.MinorGrid.Enabled = false; + chartArea.AxisY2.MajorGrid.Enabled = false; + var max = Math.Max(-Math.Round(grad.Min() * 2), Math.Round(grad.Max() * 2)); + //chartArea.AxisY2.si + chartArea.AxisY2.Minimum = -max; + chartArea.AxisY2.Maximum = max; + chartArea.AxisY2.RoundAxisValues(); + + var seriesGrad = CreateSeries("Gradient", legend, chartArea, chart, Color.Coral, x, grad); + seriesGrad.YAxisType = AxisType.Secondary; } + var series1 = CreateSeries(string.Format("Vecto 3 - {0}", yfield), legend, chartArea, chart, Color.Blue, x, y); if (fileNameV22 != null) { var y2 = LoadData(modDataV22, yfield.GetName()); var series2 = CreateSeries(string.Format("Vecto 2.2 - {0}", yfield), legend, chartArea, chart, - Color.Red, x2, - y2); + Color.Red, x2, y2); } PositionChartArea(chartArea, titleHeight, i, yfields.Count()); @@ -244,14 +281,6 @@ namespace TUGraz.VectoCore.Tests.Utils .ToArray(); } - //private static double[] LoadData(DataView modDataV3, string field) - //{ - // return modDataV3.Rows.Cast<DataRow>() - // .Select(v => v.Field<string>(field).Length == 0 - // ? Double.NaN - // : v.Field<string>(field).ToDouble()) - // .ToArray(); - //} private static void AlignChart(Chart chart, string chartToAlign, string chartToAlignWith) {