Example #1
0
        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}");
        }
Example #2
0
        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);
        }
Example #3
0
        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");
        }
Example #4
0
        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);
        }
Example #5
0
        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");
        }
Example #6
0
        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);
        }
Example #7
0
        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);
        }
Example #8
0
        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);
        }
Example #9
0
        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);
        }
Example #10
0
        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);
        }
Example #11
0
        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);
        }
Example #12
0
        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");
        }
Example #13
0
        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);
        }
Example #14
0
        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);
        }
Example #15
0
        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");
        }
Example #16
0
 static void Main(string[] args)
 {
     QuickPlot.Figure figure = new QuickPlot.Figure();
     figure.Save(640, 480, "console.png");
 }