コード例 #1
0
        private void DrawAxisTests(Context ctx, Rectangle bounds)
        {
            Rectangle boundingBox;
            Point     tl = Point.Zero;
            Point     br = Point.Zero;;

            tl.X = bounds.Left + 30;        tl.Y = bounds.Top + 20;
            br.X = bounds.Right - 30;       br.Y = bounds.Top + 20;

            LogAxis log = new LogAxis(1, 10000);

            log.Draw(ctx, tl, br, out boundingBox);

            log.Reversed = true;
            tl.Y        += 50;     br.Y += 50;

            log.Draw(ctx, br, tl, out boundingBox);


            // Test for default TicksAngle on positive X-axis, ie Ticks below X-axis
            LogAxis lx = new LogAxis(100, 100000);

            lx.NumberFormat = "{0:0.0E+0}";

            tl.X = bounds.Left + 30;        tl.Y = bounds.Bottom - 60;
            br.X = bounds.Right - 30;       br.Y = bounds.Bottom - 60;

            lx.Draw(ctx, tl, br, out boundingBox);
        }
コード例 #2
0
ファイル: NPlotTest.cs プロジェクト: ggwhsd/CSharpStudy
        private void checkBox12_CheckedChanged(object sender, EventArgs e)
        {
            // y axis
            LogAxis logay = new LogAxis(myPlot.YAxis1);

            logay.WorldMin      = 1;
            logay.WorldMax      = 10;
            logay.AxisColor     = Color.Red;
            logay.LabelColor    = Color.Red;
            logay.TickTextColor = Color.Red;
            logay.LargeTickStep = 1.0f;
            logay.Label         = "x^2";
            this.myPlot.YAxis1  = logay;
        }
コード例 #3
0
ファイル: PlotLogLin.cs プロジェクト: lijielife/NPlot-1
        public PlotLogLin()
        {
            infoText  = "";
            infoText += "LogLin Example. Demonstrates - \n";
            infoText += "  * How to chart data against log axes and linear axes at the same time. \n";
            infoText += "  * Click a Start point and drag to an End point to Measure the plots";

            plotSurface.Clear();

            // draw a fine grid.
            Grid fineGrid = new Grid();

            fineGrid.VerticalGridType   = Grid.GridType.Fine;
            fineGrid.HorizontalGridType = Grid.GridType.Fine;
            plotSurface.Add(fineGrid);

            const int npt = 101;

            float[] x    = new float[npt];
            float[] y    = new float[npt];
            float   step = 0.1f;

            for (int i = 0; i < npt; ++i)
            {
                x[i] = i * step - 5.0f;
                y[i] = (float)Math.Pow(10.0, x[i]);
            }
            float xmin = x[0];
            float xmax = x[npt - 1];
            float ymin = (float)Math.Pow(10.0, xmin);
            float ymax = (float)Math.Pow(10.0, xmax);

            LinePlot lp = new LinePlot();

            lp.OrdinateData = y;
            lp.AbscissaData = x;
            lp.Pen          = new Pen(Color.Red);
            plotSurface.Add(lp);

            LogAxis loga = new LogAxis(plotSurface.YAxis1);

            loga.WorldMin      = ymin;
            loga.WorldMax      = ymax;
            loga.AxisColor     = Color.Red;
            loga.LabelColor    = Color.Red;
            loga.TickTextColor = Color.Red;
            loga.LargeTickStep = 1.0f;
            loga.Label         = "10^x";
            plotSurface.YAxis1 = loga;

            Measure m1 = new Measure(Color.Black);

            plotSurface.AddInteraction(m1);

            LinePlot lp1 = new LinePlot();

            lp1.OrdinateData = y;
            lp1.AbscissaData = x;
            lp1.Pen          = new Pen(Color.Blue);
            plotSurface.Add(lp1, XAxisPosition.Bottom, YAxisPosition.Right);
            LinearAxis lin = new LinearAxis(plotSurface.YAxis2);

            lin.WorldMin       = ymin;
            lin.WorldMax       = ymax;
            lin.AxisColor      = Color.Blue;
            lin.LabelColor     = Color.Blue;
            lin.TickTextColor  = Color.Blue;
            lin.Label          = "10^x";
            plotSurface.YAxis2 = lin;

            LinearAxis lx = (LinearAxis)plotSurface.XAxis1;

            lx.WorldMin = xmin;
            lx.WorldMax = xmax;
            lx.Label    = "x";

            //((LogAxis)plotSurface.YAxis1).LargeTickStep = 2;

            plotSurface.Title = "Mixed Linear/Log Axes";

            //plotSurface.XAxis1.LabelOffset = 20.0f;

            plotSurface.Refresh();
        }
コード例 #4
0
        public void CreatePlot(InteractivePlotSurface2D plotSurface)
        {
            plotSurface.Clear();

            // draw a fine grid.
            Grid fineGrid = new Grid();

            fineGrid.VerticalGridType   = Grid.GridType.Fine;
            fineGrid.HorizontalGridType = Grid.GridType.Fine;
            plotSurface.Add(fineGrid);

            const int npt = 101;

            float[] x    = new float[npt];
            float[] y    = new float[npt];
            float   step = 0.1f;

            for (int i = 0; i < npt; ++i)
            {
                x[i] = i * step - 5.0f;
                y[i] = (float)Math.Pow(10.0, x[i]);
            }
            float xmin = x[0];
            float xmax = x[npt - 1];
            float ymin = (float)Math.Pow(10.0, xmin);
            float ymax = (float)Math.Pow(10.0, xmax);

            LinePlot lp = new LinePlot();

            lp.OrdinateData = y;
            lp.AbscissaData = x;
            lp.Pen          = new Pen(Color.Red);
            plotSurface.Add(lp);

            LogAxis loga = new LogAxis(plotSurface.YAxis1);

            loga.WorldMin      = ymin;
            loga.WorldMax      = ymax;
            loga.AxisColor     = Color.Red;
            loga.LabelColor    = Color.Red;
            loga.TickTextColor = Color.Red;
            loga.LargeTickStep = 1.0f;
            loga.Label         = "10^x";
            plotSurface.YAxis1 = loga;

            LinePlot lp1 = new LinePlot();

            lp1.OrdinateData = y;
            lp1.AbscissaData = x;
            lp1.Pen          = new Pen(Color.Blue);
            plotSurface.Add(lp1, PlotSurface2D.XAxisPosition.Bottom, PlotSurface2D.YAxisPosition.Right);
            LinearAxis lin = new LinearAxis(plotSurface.YAxis2);

            lin.WorldMin       = ymin;
            lin.WorldMax       = ymax;
            lin.AxisColor      = Color.Blue;
            lin.LabelColor     = Color.Blue;
            lin.TickTextColor  = Color.Blue;
            lin.Label          = "10^x";
            plotSurface.YAxis2 = lin;

            LinearAxis lx = (LinearAxis)plotSurface.XAxis1;

            lx.WorldMin = xmin;
            lx.WorldMax = xmax;
            lx.Label    = "x";

            //((LogAxis)plotSurface.YAxis1).LargeTickStep = 2;

            plotSurface.Title = "Mixed Linear/Log Axes";

            //plotSurface.XAxis1.LabelOffset = 20.0f;

            plotSurface.Refresh();
        }
コード例 #5
0
        public PlotLogLog()
        {
            infoText  = "";
            infoText += "LogLog Example. Demonstrates - \n";
            infoText += " * How to chart data against log axes and linear axes at the same time. \n";
            infoText += " * Plot Drag (Vertical) - try clicking and dragging in the Plot area \n";
            infoText += " * Plot Drag (Vertical) - try Ctrl + clicking and dragging in the Plot area";

            // log log plot
            plotSurface.Clear();

            Grid mygrid = new Grid();

            mygrid.HorizontalGridType = Grid.GridType.Fine;
            mygrid.VerticalGridType   = Grid.GridType.Fine;
            plotSurface.Add(mygrid);

            int npt = 101;

            float [] x = new float[npt];
            float [] y = new float[npt];

            float step = 0.1f;

            // plot a power law on the log-log scale
            for (int i = 0; i < npt; ++i)
            {
                x[i] = (i + 1) * step;
                y[i] = x[i] * x[i];
            }
            float xmin = x[0];
            float xmax = x[npt - 1];
            float ymin = y[0];
            float ymax = y[npt - 1];

            LinePlot lp = new LinePlot();

            lp.OrdinateData = y;
            lp.AbscissaData = x;
            lp.Pen          = new Pen(Color.Red);
            plotSurface.Add(lp);
            // axes
            // x axis
            LogAxis logax = new LogAxis(plotSurface.XAxis1);

            logax.WorldMin      = xmin;
            logax.WorldMax      = xmax;
            logax.AxisColor     = Color.Red;
            logax.LabelColor    = Color.Red;
            logax.TickTextColor = Color.Red;
            logax.LargeTickStep = 1.0f;
            logax.Label         = "x";
            plotSurface.XAxis1  = logax;
            // y axis
            LogAxis logay = new LogAxis(plotSurface.YAxis1);

            logay.WorldMin      = ymin;
            logay.WorldMax      = ymax;
            logay.AxisColor     = Color.Red;
            logay.LabelColor    = Color.Red;
            logay.TickTextColor = Color.Red;
            logay.LargeTickStep = 1.0f;
            logay.Label         = "x^2";
            plotSurface.YAxis1  = logay;

            LinePlot lp1 = new LinePlot();

            lp1.OrdinateData = y;
            lp1.AbscissaData = x;
            lp1.Pen          = new Pen(Color.Blue);
            plotSurface.Add(lp1, XAxisPosition.Top, YAxisPosition.Right);
            // axes
            // x axis (lin)
            LinearAxis linx = (LinearAxis)plotSurface.XAxis2;

            linx.WorldMin      = xmin;
            linx.WorldMax      = xmax;
            linx.AxisColor     = Color.Blue;
            linx.LabelColor    = Color.Blue;
            linx.TickTextColor = Color.Blue;
            linx.Label         = "x";
            plotSurface.XAxis2 = linx;
            // y axis (lin)
            LinearAxis liny = (LinearAxis)plotSurface.YAxis2;

            liny.WorldMin      = ymin;
            liny.WorldMax      = ymax;
            liny.AxisColor     = Color.Blue;
            liny.LabelColor    = Color.Blue;
            liny.TickTextColor = Color.Blue;
            liny.Label         = "x^2";
            plotSurface.YAxis2 = liny;

            plotSurface.Title = "x^2 plotted with log(red)/linear(blue) axes";
            plotSurface.AddInteraction(new PlotDrag(false, true));

            plotSurface.Refresh();
        }
コード例 #6
0
        public void CreatePlot(InteractivePlotSurface2D plotSurface)
        {
            // log log plot
            plotSurface.Clear();

            Grid mygrid = new Grid();

            mygrid.HorizontalGridType = Grid.GridType.Fine;
            mygrid.VerticalGridType   = Grid.GridType.Fine;
            plotSurface.Add(mygrid);

            int npt = 101;

            float [] x = new float[npt];
            float [] y = new float[npt];

            float step = 0.1f;

            // plot a power law on the log-log scale
            for (int i = 0; i < npt; ++i)
            {
                x[i] = (i + 1) * step;
                y[i] = x[i] * x[i];
            }
            float xmin = x[0];
            float xmax = x[npt - 1];
            float ymin = y[0];
            float ymax = y[npt - 1];

            LinePlot lp = new LinePlot();

            lp.OrdinateData = y;
            lp.AbscissaData = x;
            lp.Pen          = new Pen(Color.Red);
            plotSurface.Add(lp);
            // axes
            // x axis
            LogAxis logax = new LogAxis(plotSurface.XAxis1);

            logax.WorldMin      = xmin;
            logax.WorldMax      = xmax;
            logax.AxisColor     = Color.Red;
            logax.LabelColor    = Color.Red;
            logax.TickTextColor = Color.Red;
            logax.LargeTickStep = 1.0f;
            logax.Label         = "x";
            plotSurface.XAxis1  = logax;
            // y axis
            LogAxis logay = new LogAxis(plotSurface.YAxis1);

            logay.WorldMin      = ymin;
            logay.WorldMax      = ymax;
            logay.AxisColor     = Color.Red;
            logay.LabelColor    = Color.Red;
            logay.TickTextColor = Color.Red;
            logay.LargeTickStep = 1.0f;
            logay.Label         = "x^2";
            plotSurface.YAxis1  = logay;

            LinePlot lp1 = new LinePlot();

            lp1.OrdinateData = y;
            lp1.AbscissaData = x;
            lp1.Pen          = new Pen(Color.Blue);
            plotSurface.Add(lp1, PlotSurface2D.XAxisPosition.Top, PlotSurface2D.YAxisPosition.Right);
            // axes
            // x axis (lin)
            LinearAxis linx = (LinearAxis)plotSurface.XAxis2;

            linx.WorldMin      = xmin;
            linx.WorldMax      = xmax;
            linx.AxisColor     = Color.Blue;
            linx.LabelColor    = Color.Blue;
            linx.TickTextColor = Color.Blue;
            linx.Label         = "x";
            plotSurface.XAxis2 = linx;
            // y axis (lin)
            LinearAxis liny = (LinearAxis)plotSurface.YAxis2;

            liny.WorldMin      = ymin;
            liny.WorldMax      = ymax;
            liny.AxisColor     = Color.Blue;
            liny.LabelColor    = Color.Blue;
            liny.TickTextColor = Color.Blue;
            liny.Label         = "x^2";
            plotSurface.YAxis2 = liny;

            plotSurface.Title = "x^2 plotted with log(red)/linear(blue) axes";

            plotSurface.Refresh();
        }