public void Test_AxisAuto_SignalWithMinMaxIndexSet() { var plt = new ScottPlot.Plot(400, 300); var sig = plt.AddSignal(ScottPlot.DataGen.Sin(1000), sampleRate: 10); sig.MinRenderIndex = 450; sig.MaxRenderIndex = 550; plt.AxisAuto(); var limits = plt.GetAxisLimits(); Console.WriteLine($"AutoAxis Limits: {limits}"); Assert.Less(limits.XMin, limits.XMax); Assert.Less(limits.YMin, limits.YMax); TestTools.SaveFig(plt); }
/// <summary> /// Return a string containing comma-separated labels for all visible horizontal ticks /// </summary> public static string GetXTickString(ScottPlot.Plot plt) { // enable manual tick measurement so tick density calculations are consistent across operating systems //plt.XAxis.TickMeasurement(manual: true); // perform a render to reset the layout plt.Layout(20, 20, 20, 20); plt.Render(); // capture the ticks that were just rendered var limits = plt.GetAxisLimits(); string[] labels = plt.XAxis.GetTicks(limits.XMin, limits.XMax) .Select(x => x.Label) .Where(x => !string.IsNullOrEmpty(x)) .ToArray(); return(string.Join(", ", labels)); }
public void Test_AxisAuto_AdjustsAllAxes() { var plt = new ScottPlot.Plot(400, 300); var sig1 = plt.AddSignal(ScottPlot.DataGen.Sin(51)); sig1.XAxisIndex = 0; sig1.YAxisIndex = 0; var sig2 = plt.AddSignal(ScottPlot.DataGen.Cos(51)); sig2.XAxisIndex = 1; sig2.YAxisIndex = 1; // on startup all axes are reset with AxisAuto() plt.Render(); plt.AxisAuto(); var originalLimitsPrimary = plt.GetAxisLimits(0); var originalLimitsSecondary = plt.GetAxisLimits(1); // zoom out on all axes plt.AxisZoom(.1, .1, xAxisIndex: 0, yAxisIndex: 0); plt.AxisZoom(.1, .1, xAxisIndex: 1, yAxisIndex: 1); var zoomedOutLimitsPrimary = plt.GetAxisLimits(0); Assert.Greater(zoomedOutLimitsPrimary.XSpan, originalLimitsPrimary.XSpan); Assert.Greater(zoomedOutLimitsPrimary.YSpan, originalLimitsPrimary.YSpan); var zoomedOutLimitsSecondary = plt.GetAxisLimits(1); Assert.Greater(zoomedOutLimitsSecondary.XSpan, originalLimitsSecondary.XSpan); Assert.Greater(zoomedOutLimitsSecondary.YSpan, originalLimitsSecondary.YSpan); // call AxisAuto() which is now expected to act on all axes plt.AxisAuto(); var resetLimitsPrimary = plt.GetAxisLimits(0); var resetLimitsSecondary = plt.GetAxisLimits(1); Assert.AreEqual(resetLimitsPrimary.XSpan, originalLimitsPrimary.XSpan); Assert.AreEqual(resetLimitsPrimary.YSpan, originalLimitsPrimary.YSpan); Assert.AreEqual(resetLimitsSecondary.XSpan, originalLimitsSecondary.XSpan); Assert.AreEqual(resetLimitsSecondary.YSpan, originalLimitsSecondary.YSpan); TestTools.SaveFig(plt); //var limits = plt.GetAxisLimits(); //Console.WriteLine(limits); }
public void Test_GetUnit_ReturnsCorrectValue() { var plt = new ScottPlot.Plot(600, 400); plt.AddSignal(ScottPlot.DataGen.Sin(51)); plt.Render(); var limits = plt.GetAxisLimits(); // right edge Assert.Greater(plt.GetCoordinateX(plt.Width), limits.XCenter); // left edge Assert.Less(plt.GetCoordinateX(0), limits.XCenter); // top edge Assert.Greater(plt.GetCoordinateY(0), limits.YCenter); // bottom edge Assert.Less(plt.GetCoordinateY(plt.Height), limits.YCenter); }
public void Test_View_LimitsOuter() { var plt = new ScottPlot.Plot(400, 300); plt.AddSignal(ScottPlot.DataGen.Sin(51)); plt.AddSignal(ScottPlot.DataGen.Cos(51)); plt.SetOuterViewLimits(xMin: -123, xMax: 123, yMin: -13, yMax: 13); TestTools.SaveFig(plt, "1"); for (int i = 0; i < 10; i++) { plt.AxisZoom(.5, .5); } TestTools.SaveFig(plt, "2"); var limits2 = plt.GetAxisLimits(); Assert.GreaterOrEqual(limits2.XMin, -123); Assert.GreaterOrEqual(limits2.XMax, 123); Assert.GreaterOrEqual(limits2.YMin, -13); Assert.GreaterOrEqual(limits2.YMax, 13); }
public void Test_View_LimitsInner() { var plt = new ScottPlot.Plot(400, 300); plt.AddSignal(ScottPlot.DataGen.Sin(51)); plt.AddSignal(ScottPlot.DataGen.Cos(51)); plt.SetInnerViewLimits(xMin: 10, xMax: 20, yMin: .1, yMax: .2); plt.AxisAuto(); TestTools.SaveFig(plt, "1"); for (int i = 0; i < 10; i++) { plt.AxisZoom(2, 2); } TestTools.SaveFig(plt, "2"); var limits2 = plt.GetAxisLimits(); Assert.LessOrEqual(limits2.XMin, 10); Assert.LessOrEqual(limits2.XMax, 20); Assert.LessOrEqual(limits2.YMin, .1); Assert.LessOrEqual(limits2.YMax, .2); }