public static void SaveFig(QuickPlot.Figure figure, string name, int width = 600, int height = 400) { string fileName = name + ".png"; string filePath = System.IO.Path.Join(outputFolder, fileName); figure.Save(width, height, filePath); Console.WriteLine($"Saved: {filePath}"); }
public void Test_Layout_Default() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.plot.Scatter(xs, ys); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_Default() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); // by default (no calls to SubPlot) there is a single plot var figure = new QuickPlot.Figure(); figure.plot.Scatter(xs, ys); figure.Save(width, height, MethodBase.GetCurrentMethod().Name + ".png"); }
public void Subplot_TwoStackedVertically() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.Subplot(2, 1, 1); figure.plot.Scatter(xs, ys); figure.Subplot(2, 1, 2); figure.plot.Scatter(xs, ys); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_TwoStackedHorizontally() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.Subplot(1, 2, 1); figure.plot.Scatter(xs, ys); figure.Subplot(1, 2, 2); figure.plot.Scatter(xs, ys); figure.Save(width, height, MethodBase.GetCurrentMethod().Name + ".png"); }
public void Test_Layout_CustomLabelSizes() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.plot.Scatter(xs, ys); figure.plot.axes2.y.display = true; figure.plot.Title("Label Display Test", fontSize: 48); figure.plot.XLabel("Primary Horizontal Axis", fontSize: 36); figure.plot.YLabel("Primary Axis", fontSize: 36); figure.plot.YLabel("Secondary Axis", fontSize: 36); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_TwoBesideOne() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.Subplot(2, 2, 1, rowSpan: 2); figure.plot.Scatter(xs, ys); figure.Subplot(2, 2, 2); figure.plot.Scatter(xs, ys); figure.Subplot(2, 2, 4); figure.plot.Scatter(xs, ys); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Test_Layout_CustomLabelColorsAndFonts() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys1 = QuickPlot.Generate.Random(100); double[] ys2 = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.plot.Scatter(xs, ys1); figure.plot.Scatter(xs, ys2, secondY: true); figure.plot.Title("Label Display Test", fontSize: 48, color: SkiaSharp.SKColors.Red, fontName: "Comic Sans MS"); figure.plot.XLabel("Primary Horizontal Axis", fontSize: 36, color: SkiaSharp.SKColors.Green, fontName: "Consolas"); figure.plot.YLabel("Primary Axis", fontSize: 36, color: SkiaSharp.SKColors.Blue, fontName: "Times New Roman"); figure.plot.YLabel("Secondary Axis", secondY: true, fontSize: 36, color: SkiaSharp.SKColors.Orange, fontName: "Georgia"); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Test_Figure_Reset() { double[] xs = QuickPlot.Generate.Consecutative(100); var figure = new QuickPlot.Figure(); // crete a multi-panel subplot figure.Subplot(2, 1, 1); figure.plot.Scatter(xs, QuickPlot.Generate.Random(100, 10)); figure.Subplot(2, 1, 2); figure.plot.Scatter(xs, QuickPlot.Generate.Random(100, 100)); // start over figure.Reset(); figure.plot.Scatter(xs, QuickPlot.Generate.Sin(100)); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_NoSharedAxes() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys1 = QuickPlot.Generate.Sin(100); double[] ys2 = QuickPlot.Generate.Cos(100); var figure = new QuickPlot.Figure(); var plot1 = figure.Subplot(2, 1, 1); var plot2 = figure.Subplot(2, 1, 2); plot1.Scatter(xs, ys1); plot2.Scatter(xs, ys2); plot1.axes.Set(-20, 120, -2, 2); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Test_MultipleY() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ysSmall = QuickPlot.Generate.Sin(100, mult: .01); double[] ysBig = QuickPlot.Generate.Cos(100, mult: 100); var figure = new QuickPlot.Figure(); figure.plot.Scatter(xs, ysSmall, color: SkiaSharp.SKColors.Blue); figure.plot.Scatter(xs, ysBig, secondY: true, color: SkiaSharp.SKColors.Red); figure.plot.YLabel("Primary Y", color: SkiaSharp.SKColors.Blue); figure.plot.YLabel("Secondary Y", secondY: true, color: SkiaSharp.SKColors.Red); figure.plot.XLabel("Horizontal Axis"); figure.plot.Title("Twin Y Axis Demo"); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_FourInGrid() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys = QuickPlot.Generate.Random(100); var figure = new QuickPlot.Figure(); figure.Subplot(2, 2, 1); figure.plot.Scatter(xs, ys); figure.Subplot(2, 2, 2); figure.plot.Scatter(xs, ys); figure.Subplot(2, 2, 3); figure.plot.Scatter(xs, ys); figure.Subplot(2, 2, 4); figure.plot.Scatter(xs, ys); figure.Save(width, height, MethodBase.GetCurrentMethod().Name + ".png"); }
public void Test_Figure_Style() { double[] xs = QuickPlot.Generate.Consecutative(100); var figure = new QuickPlot.Figure(); figure.Subplot(2, 2, 1); figure.plot.Scatter(xs, QuickPlot.Generate.Random(100)); figure.Subplot(2, 2, 2); figure.plot.Scatter(xs, QuickPlot.Generate.Random(100)); figure.Subplot(2, 2, 3); figure.plot.Scatter(xs, QuickPlot.Generate.Sin(100)); figure.Subplot(2, 2, 4); figure.plot.Scatter(xs, QuickPlot.Generate.Cos(100)); figure.Style(bgColor: SkiaSharp.SKColors.Honeydew, edgePadding: 25, subplotPaddingHorizontal: 20, subplotPaddingVertical: 40); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
public void Subplot_SharedXandY() { double[] xs = QuickPlot.Generate.Consecutative(100); double[] ys1 = QuickPlot.Generate.Sin(100); double[] ys2 = QuickPlot.Generate.Cos(100); var figure = new QuickPlot.Figure(); var plot1 = figure.Subplot(2, 1, 1); var plot2 = figure.Subplot(2, 1, 2); plot1.Scatter(xs, ys1); plot2.Scatter(xs, ys2); plot2.ShareX(plot1); plot2.ShareY(plot1); plot2.axes.Zoom(.5, .5); Tools.SaveFig(figure, MethodBase.GetCurrentMethod().Name); }
static void OneThousandLines() { var fig = new QuickPlot.Figure(); fig.Subplot(2, 3, 1); double[] xs = Generate.Consecutative(20, 1.0 / 20); fig.plot.Scatter(xs, Generate.Sin(xs.Length)); fig.plot.Scatter(xs, Generate.Cos(xs.Length)); fig.Subplot(2, 3, 2); fig.plot.Scatter(xs, Generate.Cos(xs.Length)); fig.Subplot(2, 3, 3); fig.plot.Scatter(xs, Generate.Random(xs.Length)); fig.Subplot(2, 3, 4, 1, 3); fig.plot.Scatter(Generate.Random(xs.Length), Generate.Random(xs.Length)); fig.Save("test.png"); }
static void Main(string[] args) { QuickPlot.Figure figure = new QuickPlot.Figure(); figure.Save(640, 480, "console.png"); }