Exemple #1
0
        public void Test_Bar_ShowValues()
        {
            var plt = new ScottPlot.Plot();

            // start with default settings
            double[] ys  = new double[] { 1, 3, 2, 4 };
            var      bar = new BarPlot(null, ys, null, null)
            {
            };

            plt.Add(bar);
            plt.SetAxisLimits(-1, 4, -1, 5);
            var bmp1 = TestTools.GetLowQualityBitmap(plt);

            // change the plottable
            bar.ShowValuesAboveBars = true;
            var bmp2 = TestTools.GetLowQualityBitmap(plt);

            // measure what changed
            //TestTools.SaveFig(bmp1, "1");
            //TestTools.SaveFig(bmp2, "2");
            var before = new MeanPixel(bmp1);
            var after  = new MeanPixel(bmp2);

            Console.WriteLine($"Before: {before}");
            Console.WriteLine($"After: {after}");

            Assert.That(after.IsDarkerThan(before));
        }
Exemple #2
0
        public void Test_Bar_MultiSeries()
        {
            Random rand = new Random(0);

            string[] groupNames  = { "one", "two", "three", "four", "five" };
            string[] seriesNames = { "alpha", "beta", "gamma" };

            int groupCount = groupNames.Length;

            double[] xs   = DataGen.Consecutive(groupCount);
            double[] ys1  = DataGen.RandomNormal(rand, groupCount, 20, 5);
            double[] ys2  = DataGen.RandomNormal(rand, groupCount, 20, 5);
            double[] ys3  = DataGen.RandomNormal(rand, groupCount, 20, 5);
            double[] err1 = DataGen.RandomNormal(rand, groupCount, 5, 2);
            double[] err2 = DataGen.RandomNormal(rand, groupCount, 5, 2);
            double[] err3 = DataGen.RandomNormal(rand, groupCount, 5, 2);

            var plt = new ScottPlot.Plot(600, 400);

            plt.PlotBarGroups(
                groupLabels: groupNames,
                seriesLabels: seriesNames,
                ys: new double[][] { ys1, ys2, ys3 },
                yErr: new double[][] { err1, err2, err3 });

            plt.SetAxisLimits(yMin: 0);
            plt.Grid(enableVertical: false, lineStyle: LineStyle.Dot);
            plt.Legend(location: Alignment.UpperRight);
            TestTools.SaveFig(plt);
        }
Exemple #3
0
        public void Test_AutoAxis_ShrinkWhenNeeded()
        {
            var plt = new ScottPlot.Plot();

            // small area
            plt.PlotLine(-5, -5, 5, 5);
            plt.AxisAuto();
            var limitsA = plt.GetAxisLimits();

            Console.WriteLine($"limits A: {limitsA}");

            // expand to large area
            plt.SetAxisLimits(-123, 123, -123, 123);
            var limitsB = plt.GetAxisLimits();

            Console.WriteLine($"limits B: {limitsB}");

            // shrink back to small area
            plt.AxisAuto();
            var limitsC = plt.GetAxisLimits();

            Console.WriteLine($"limits C: {limitsC}");

            Assert.That(limitsB.XMin < limitsA.XMin);
            Assert.That(limitsB.XMax > limitsA.XMax);
            Assert.That(limitsB.YMin < limitsA.YMin);
            Assert.That(limitsB.YMax > limitsA.YMax);

            Assert.That(limitsB.XMin < limitsC.XMin);
            Assert.That(limitsB.XMax > limitsC.XMax);
            Assert.That(limitsB.YMin < limitsC.YMin);
            Assert.That(limitsB.YMax > limitsC.YMax);
        }
Exemple #4
0
        public void Test_function_LineStyle()
        {
            var plt = new ScottPlot.Plot();

            // start with default settings
            double?func(double x) => Math.Sqrt(x);

            var funcPlot = new FunctionPlot(func)
            {
            };

            plt.SetAxisLimits(-1, 1, -.5, 1.5);

            plt.Add(funcPlot);
            var bmp1 = TestTools.GetLowQualityBitmap(plt);

            // change the plottable
            funcPlot.lineStyle = LineStyle.Dash;
            var bmp2 = TestTools.GetLowQualityBitmap(plt);

            // measure what changed
            //TestTools.SaveFig(bmp1, "1");
            //TestTools.SaveFig(bmp2, "2");
            var before = new MeanPixel(bmp1);
            var after  = new MeanPixel(bmp2);

            Console.WriteLine($"Before: {before}");
            Console.WriteLine($"After: {after}");

            Assert.That(after.IsLighterThan(before));
        }
Exemple #5
0
        public void Test_TickMinor_OnePixelOffFromMajor()
        {
            // this makes the horizontal axis tick near 2.0 look bad
            var plt = new ScottPlot.Plot(400, 300);

            plt.SetAxisLimits(0, 3, 0, 3);
            TestTools.SaveFig(plt);
        }
Exemple #6
0
        public void Test_Axis_VeryBigNumbers()
        {
            var plt = new ScottPlot.Plot();

            plt.AddSignal(DataGen.Sin(51));
            plt.AddSignal(DataGen.Cos(51));

            plt.SetAxisLimits(yMin: -10e50, yMax: 10e50);

            TestTools.SaveFig(plt);
        }
Exemple #7
0
        public void Test_Scatter_Smooth()
        {
            double[] xs  = { 18.5, 20.6, 22.3, 24.5, 26.6, 15, 15 };
            double[] ys  = { 1.43, 1.48, 1.6, 1.59, 1.53, 1.52, 1.6 };
            var      plt = new ScottPlot.Plot(600, 400);

            var sp1 = plt.AddScatter(xs, ys, label: "DrawLines()");

            sp1.Smooth = false;

            var sp2 = plt.AddScatter(xs, ys, label: "DrawCurve()");

            sp2.Smooth = true;

            plt.Legend();
            plt.SetAxisLimits(0, 30, 1.42, 1.62);
            TestTools.SaveFig(plt);
        }