Пример #1
0
        //Main code for creating charts
        public void createChart(WinChartViewer viewer, int chartIndex)
        {
            // The x and y coordinates of the grid
            double[] dataX = { -4, -3, -2, -1, 0, 1, 2, 3, 4 };
            double[] dataY = { -4, -3, -2, -1, 0, 1, 2, 3, 4 };

            // Use random numbers for the z values on the XY grid
            RanSeries r = new RanSeries(99);

            double[] dataZ = r.get2DSeries(dataX.Length, dataY.Length, -0.9, 0.9);

            // Create a XYChart object of size 420 x 360 pixels
            XYChart c = new XYChart(420, 360);

            // Set the plotarea at (30, 25) and of size 300 x 300 pixels. Use semi-transparent grey
            // (0xdd000000) horizontal and vertical grid lines
            c.setPlotArea(30, 25, 300, 300, -1, -1, -1, unchecked ((int)0xdd000000), -1);

            // Set the x-axis and y-axis scale
            c.xAxis().setLinearScale(-4, 4, 1);
            c.yAxis().setLinearScale(-4, 4, 1);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Move the grid lines in front of the contour layer
            c.getPlotArea().moveGridBefore(layer);

            // Add a color axis (the legend) in which the top left corner is anchored at (350, 25).
            // Set the length to 400 300 and the labels on the right side.
            ColorAxis cAxis = layer.setColorAxis(350, 25, Chart.TopLeft, 300, Chart.Right);

            if (chartIndex == 1)
            {
                // Speicify a color gradient as a list of colors, and use it in the color axis.
                int[] colorGradient = { 0x0044cc, 0xffffff, 0x00aa00 };
                cAxis.setColorGradient(false, colorGradient);
            }
            else if (chartIndex == 2)
            {
                // Specify the color scale to use in the color axis
                double[] colorScale = { -1.0,     0x1a9850,    -0.75, 0x66bd63,     -0.5, 0xa6d96a,    -0.25,
                                        0xd9ef8b,        0, 0xfee08b,     0.25, 0xfdae61,      0.5, 0xf46d43,0.75, 0xd73027, 1 };
                cAxis.setColorScale(colorScale);
            }
            else if (chartIndex == 3)
            {
                // Specify the color scale to use in the color axis. Also specify an underflow color
                // 0x66ccff (blue) for regions that fall below the lower axis limit.
                double[] colorScale = { 0,   0xffff99, 0.2, 0x80cdc1, 0.4, 0x35978f, 0.6, 0x01665e,
                                        0.8, 0x003c30, 1 };
                cAxis.setColorScale(colorScale, 0x66ccff);
            }

            // Output the chart
            viewer.Chart = c;
        }
Пример #2
0
        private void OpenContourFile(string fname, ICanvas canvas)
        {
            IContourLayer lyr = ContourLayer.FromXml(fname, true);

            if (lyr != null)
            {
                canvas.LayerContainer.Layers.Add(lyr);
                canvas.Refresh(Core.DrawEngine.enumRefreshType.All);
            }
        }
Пример #3
0
        private void UpdatePlot(object sender, RunWorkerCompletedEventArgs e)
        {
            List <object> objlist = new List <object>();

            objlist.AddRange((List <object>)e.Result);
            double[] depart    = (double[])objlist[0];
            double[] arrive    = (double[])objlist[1];
            double[] departVel = (double[])objlist[2];
            string   Plan1Name = (string)objlist[3];
            string   Plan2Name = (string)objlist[4];

            XYChart c = new XYChart(800, 800);

            c.setPlotArea(75, 40, 600, 600, -1, -1, -1, c.dashLineColor(unchecked ((int)0x80000000), Chart.DotLine), -1);
            // When auto-scaling, use tick spacing of 40 pixels as a guideline
            c.yAxis().setTickDensity(40);
            c.xAxis().setTickDensity(40);


            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(depart, arrive, departVel);

            c.getPlotArea().moveGridBefore(layer);
            ColorAxis cAxis = layer.setColorAxis(700, 40, Chart.TopLeft, 400, Chart.Right);

            double[] colorScale = { 3, 0x090446, 3.3, 0x16366B, 3.6, 0x236890, 3.9, 0x309AB5, 4.2, 0x53C45A, 4.5, 0x77EF00, 4.8, 0xBBF70F, 5.1, 0xFFFF1E, 5.4, 0xFF8111, 5.7, 0xFF0404 };
            cAxis.setColorScale(colorScale, 0x090446, 0xffffff);
            cAxis.setColorGradient(false);
            // Add a title to the color axis using 12 points Arial Bold Italic font
            cAxis.setTitle("Departure Velocity (km/s)", "Arial Bold Italic", 12);
            c.xAxis().setTitle("Departure Date (JDCT)");
            c.yAxis().setTitle("Arrival Date (JDCT)");
            c.addTitle("Departure Velocity from " + Plan1Name + " to " + Plan2Name);
            c.xAxis().setTickLength(10);
            c.yAxis().setTickLength(10);


            // Output the chart
            winChartViewer1.Chart    = c;
            winChartViewer1.ImageMap = c.getHTMLImageMap("");

            /*
             *          // The data for the bar chart
             * double[] data = {85, 156, 179.5, 211, 123};
             *
             * // The labels for the bar chart
             * string[] labels = { "Mon", "Tue", "Wed", "Thu", "Fri" };
             *
             * XYChart c = new XYChart(250, 250);
             * c.setPlotArea(30, 20, 200, 200);
             * c.addBarLayer(data);
             * c.xAxis().setLabels(labels);
             * winChartViewer1.Chart = c;
             */
        }
Пример #4
0
 private void button35_Click(object sender, EventArgs e)
 {
     using (OpenFileDialog dlg = new OpenFileDialog())
     {
         dlg.Filter = "等值线(*.xml)|*.xml";
         if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             IContourLayer lyr = ContourLayer.FromXml(dlg.FileName, true);
             if (lyr != null)
             {
                 _canvas.LayerContainer.Layers.Add(lyr);
                 _canvas.Refresh(enumRefreshType.All);
             }
             //
             //Object2Xml obj2xml = new Object2Xml();
             //obj2xml.ToXmlFile(lyr, "f:\\xxx.xml");
         }
     }
 }
Пример #5
0
        private void TryDisplay(ContourLine[] cntLines, frmContourSettings.ContourItem[] items, bool isLabel, bool isFillColor, bool isNew, IRasterDataProvider dataProvider)
        {
            if (cntLines == null || cntLines.Length == 0)
            {
                return;
            }
            var v = cntLines.Where((cntLine) => { return(cntLine != null); });

            if (v == null || v.Count() == 0)
            {
                return;
            }
            ContourClass[] dstItems = ToContourClass(items);
            foreach (ContourLine cntLine in v)
            {
                for (int i = 0; i < dstItems.Length; i++)
                {
                    if (Math.Abs(dstItems[i].ContourValue - cntLine.ContourValue) < double.Epsilon)
                    {
                        cntLine.ClassIndex = i;
                        break;
                    }
                }
            }
            if (isNew)
            {
                string fname = dataProvider.fileName;
                dataProvider.Dispose();
                OpenFileFactory.Open(fname);
            }
            ICanvasViewer cv = _smartSession.SmartWindowManager.ActiveCanvasViewer;

            if (cv == null)
            {
                return;
            }
            IContourLayer lyr = new ContourLayer("等值线");

            lyr.Apply(v.ToArray(), dstItems, isLabel, isFillColor);
            cv.Canvas.LayerContainer.Layers.Add(lyr as GeoDo.RSS.Core.DrawEngine.ILayer);
            cv.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All);
        }
Пример #6
0
 private void button26_Click(object sender, EventArgs e)
 {
     using (OpenFileDialog dlg = new OpenFileDialog())
     {
         dlg.Filter = "等值线(*.xml)|*.xml";
         if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
         {
             IContourLayer lyr = ContourLayer.FromXml(dlg.FileName, true);
             if (lyr != null)
             {
                 IDataFrame df = _host.ActiveDataFrame;
                 if (df == null)
                 {
                     return;
                 }
                 ICanvas canvas = (df.Provider as IDataFrameDataProvider).Canvas;
                 canvas.LayerContainer.Layers.Add(lyr);
                 canvas.Refresh(enumRefreshType.All);
             }
         }
     }
 }
Пример #7
0
        private void TryDisplay(ContourLine[] cntLines, frmPointContour.ContourItem[] items, bool isLabel)
        {
            if (cntLines == null || cntLines.Length == 0)
            {
                return;
            }
            var v = cntLines.Where((cntLine) => { return(cntLine != null); });

            if (v == null || v.Count() == 0)
            {
                return;
            }
            ContourClass[] dstItems = ToContourClass(items);
            foreach (ContourLine cntLine in v)
            {
                for (int i = 0; i < dstItems.Length; i++)
                {
                    if (Math.Abs(dstItems[i].ContourValue - cntLine.ContourValue) < double.Epsilon)
                    {
                        cntLine.ClassIndex = i;
                        break;
                    }
                }
            }
            ICanvasViewer cv = _smartSession.SmartWindowManager.ActiveCanvasViewer;

            if (cv == null)
            {
                return;
            }
            IContourLayer lyr = new ContourLayer("等值线");

            lyr.Apply(v.ToArray(), dstItems, isLabel, false);
            cv.Canvas.LayerContainer.Layers.Add(lyr as GeoDo.RSS.Core.DrawEngine.ILayer);
            cv.Canvas.Refresh(Core.DrawEngine.enumRefreshType.All);
        }
Пример #8
0
        //Main code for creating chart.
        //Note: the argument img is unused because this demo only has 1 chart.
        public void createChart(WinChartViewer viewer, string img)
        {
            // The x and y coordinates of the grid
            double[] dataX = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
                               5,    6,  7,  8,  9, 10 };
            double[] dataY = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
                               5,    6,  7,  8,  9, 10 };

            // The values at the grid points. In this example, we will compute the
            // values using the formula z = x * sin(y) + y * sin(x).
            double[] dataZ = new double[(dataX.Length) * (dataY.Length)];
            for (int yIndex = 0; yIndex < dataY.Length; ++yIndex)
            {
                double y = dataY[yIndex];
                for (int xIndex = 0; xIndex < dataX.Length; ++xIndex)
                {
                    double x = dataX[xIndex];
                    dataZ[yIndex * (dataX.Length) + xIndex] = x * Math.Sin(y) + y *
                                                              Math.Sin(x);
                }
            }

            // Create a XYChart object of size 600 x 500 pixels
            XYChart c = new XYChart(600, 500);

            // Add a title to the chart using 15 points Arial Bold Italic font
            c.addTitle("z = x * sin(y) + y * sin(x)      ", "Arial Bold Italic", 15);

            // Set the plotarea at (75, 40) and of size 400 x 400 pixels. Use
            // semi-transparent black (80000000) dotted lines for both horizontal and
            // vertical grid lines
            c.setPlotArea(75, 40, 400, 400, -1, -1, -1, c.dashLineColor(
                              unchecked ((int)0x80000000), Chart.DotLine), -1);

            // Set x-axis and y-axis title using 12 points Arial Bold Italic font
            c.xAxis().setTitle("X-Axis Title Place Holder", "Arial Bold Italic", 12);
            c.yAxis().setTitle("Y-Axis Title Place Holder", "Arial Bold Italic", 12);

            // Set x-axis and y-axis labels to use Arial Bold font
            c.xAxis().setLabelStyle("Arial Bold");
            c.yAxis().setLabelStyle("Arial Bold");

            // When auto-scaling, use tick spacing of 40 pixels as a guideline
            c.yAxis().setTickDensity(40);
            c.xAxis().setTickDensity(40);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Move the grid lines in front of the contour layer
            c.getPlotArea().moveGridBefore(layer);

            // Add a color axis (the legend) in which the top left corner is anchored
            // at (505, 40). Set the length to 400 pixels and the labels on the right
            // side.
            ColorAxis cAxis = layer.setColorAxis(505, 40, Chart.TopLeft, 400,
                                                 Chart.Right);

            // Add a title to the color axis using 12 points Arial Bold Italic font
            cAxis.setTitle("Color Legend Title Place Holder", "Arial Bold Italic", 12
                           );

            // Set color axis labels to use Arial Bold font
            cAxis.setLabelStyle("Arial Bold");

            // Output the chart
            viewer.Image = c.makeImage();
        }
        //Main code for creating charts
        public void createChart(WinChartViewer viewer, int chartIndex)
        {
            // The x and y coordinates of the grid
            double[] dataX = { -4, -3, -2, -1, 0, 1, 2, 3, 4 };
            double[] dataY = { -4, -3, -2, -1, 0, 1, 2, 3, 4 };

            // The values at the grid points. In this example, we will compute the values using the
            // formula z = Sin(x * pi / 3) * Sin(y * pi / 3).
            double[] dataZ = new double[dataX.Length * dataY.Length];
            for (int yIndex = 0; yIndex < dataY.Length; ++yIndex)
            {
                double y = dataY[yIndex];
                for (int xIndex = 0; xIndex < dataX.Length; ++xIndex)
                {
                    double x = dataX[xIndex];
                    dataZ[yIndex * dataX.Length + xIndex] = Math.Sin(x * 3.1416 / 3) * Math.Sin(y *
                                                                                                3.1416 / 3);
                }
            }

            // Create a XYChart object of size 360 x 360 pixels
            XYChart c = new XYChart(360, 360);

            // Set the plotarea at (30, 25) and of size 300 x 300 pixels. Use semi-transparent black
            // (c0000000) for both horizontal and vertical grid lines
            c.setPlotArea(30, 25, 300, 300, -1, -1, -1, unchecked ((int)0xc0000000), -1);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Set the x-axis and y-axis scale
            c.xAxis().setLinearScale(-4, 4, 1);
            c.yAxis().setLinearScale(-4, 4, 1);

            if (chartIndex == 0)
            {
                // Discrete coloring, spline surface interpolation
                c.addTitle("Spline Surface - Discrete Coloring", "Arial Bold Italic", 12);
            }
            else if (chartIndex == 1)
            {
                // Discrete coloring, linear surface interpolation
                c.addTitle("Linear Surface - Discrete Coloring", "Arial Bold Italic", 12);
                layer.setSmoothInterpolation(false);
            }
            else if (chartIndex == 2)
            {
                // Smooth coloring, spline surface interpolation
                c.addTitle("Spline Surface - Continuous Coloring", "Arial Bold Italic", 12);
                layer.setContourColor(Chart.Transparent);
                layer.colorAxis().setColorGradient(true);
            }
            else
            {
                // Discrete coloring, linear surface interpolation
                c.addTitle("Linear Surface - Continuous Coloring", "Arial Bold Italic", 12);
                layer.setSmoothInterpolation(false);
                layer.setContourColor(Chart.Transparent);
                layer.colorAxis().setColorGradient(true);
            }

            // Output the chart
            viewer.Chart = c;
        }
Пример #10
0
        //
        // Create chart
        //
        private void createChart(RazorChartViewer viewer)
        {
            // The (x, y, z) coordinates of the scattered data
            double[] dataX = { 0.5, 1.9, 4.9, 1.0, 8.9, 9.8, 5.9, 2.9, 6.8, 9.0,  0.0, 8.9, 1.9, 4.8, 2.4,
                               3.4, 7.9, 7.5, 4.8, 7.5, 9.5, 0.4, 8.9, 0.9, 5.4,  9.4, 2.9, 8.9, 0.9, 8.9, 10.0, 1.0,
                               6.8, 3.8, 9.0, 5.3, 6.4, 4.9, 4.5, 2.0, 5.4, 0.0, 10.0, 3.9, 5.4, 5.9, 5.8,  0.3, 4.4, 8.3 };
            double[] dataY = { 3.3, 3.0, 0.7, 1.0, 9.3, 4.5, 8.4, 0.1, 0.8, 0.1, 9.3, 1.8, 4.3, 1.3, 2.3,
                               5.4, 6.9, 9.0, 9.8, 7.5, 1.8, 1.4, 4.5, 7.8, 3.8, 4.0, 2.9, 2.4, 3.9, 2.9, 2.3, 9.3, 2.0,
                               3.4, 4.8, 2.3, 3.4, 2.3, 1.5, 7.8, 4.5, 0.9, 6.3, 2.4, 6.9, 2.8, 1.3, 2.9, 6.4, 6.3 };
            double[] dataZ = { 6.6,  12.5,  7.4,  6.2,  9.6, 13.6, 19.9, 2.2, 6.9, 3.4, 8.7, 8.4,  7.8,  8.0,
                               9.4,  11.9,  9.6, 15.7, 12.0, 13.3,  9.6, 6.4, 9.0, 6.9, 4.6, 9.7, 10.6,  9.2, 7.0, 6.9, 9.7,
                               8.6,   8.0, 13.6, 13.2,  5.9,  9.0,  3.2, 8.3, 9.7, 8.2, 6.1, 8.7,  5.6, 14.9, 9.8, 9.3, 5.1,
                               10.8, 9.8 };

            // Create a XYChart object of size 450 x 540 pixels
            XYChart c = new XYChart(450, 540);

            // Add a title to the chart using 15 points Arial Italic font
            c.addTitle("      Contour Chart with Scattered Data", "Arial Italic", 15);

            // Set the plotarea at (65, 40) and of size 360 x 360 pixels. Use semi-transparent black
            // (c0000000) for both horizontal and vertical grid lines
            c.setPlotArea(65, 40, 360, 360, -1, -1, -1, unchecked ((int)0xc0000000), -1);

            // Set x-axis and y-axis title using 12 points Arial Bold Italic font
            c.xAxis().setTitle("X-Axis Title Place Holder", "Arial Bold Italic", 10);
            c.yAxis().setTitle("Y-Axis Title Place Holder", "Arial Bold Italic", 10);

            // Set x-axis and y-axis labels to use Arial Bold font
            c.xAxis().setLabelStyle("Arial Bold");
            c.yAxis().setLabelStyle("Arial Bold");

            // When x-axis and y-axis color to transparent
            c.xAxis().setColors(Chart.Transparent);
            c.yAxis().setColors(Chart.Transparent);

            // Add a scatter layer to the chart to show the position of the data points
            c.addScatterLayer(dataX, dataY, "", Chart.Cross2Shape(0.2), 7, 0x000000);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Move the grid lines in front of the contour layer
            c.getPlotArea().moveGridBefore(layer);

            // Add a color axis (the legend) in which the top center is anchored at (245, 455). Set the
            // length to 330 pixels and the labels on the top side.
            ColorAxis cAxis = layer.setColorAxis(245, 455, Chart.TopCenter, 330, Chart.Top);

            // Add a bounding box to the color axis using the default line color as border.
            cAxis.setBoundingBox(Chart.Transparent, Chart.LineColor);

            // Add a title to the color axis using 12 points Arial Bold Italic font
            cAxis.setTitle("Color Legend Title Place Holder", "Arial Bold Italic", 10);

            // Set color axis labels to use Arial Bold font
            cAxis.setLabelStyle("Arial Bold");

            // Set the color axis range as 0 to 20, with a step every 2 units
            cAxis.setLinearScale(0, 20, 2);

            // Output the chart
            viewer.Image = c.makeWebImage(Chart.PNG);
        }
Пример #11
0
        //Main code for creating chart.
        //Note: the argument img is unused because this demo only has 1 chart.
        public void createChart(WinChartViewer viewer, string img)
        {
            // The x and y coordinates of the grid
            double[] dataX = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
                               5,    6,  7,  8,  9, 10 };
            double[] dataY = { -10, -9, -8, -7, -6, -5, -4, -3, -2, -1, 0, 1, 2, 3, 4,
                               5,    6,  7,  8,  9, 10 };

            // The values at the grid points. In this example, we will compute the
            // values using the formula z = Sin(x / 2) * Sin(y / 2).
            double[] dataZ = new double[(dataX.Length) * (dataY.Length)];
            for (int yIndex = 0; yIndex < dataY.Length; ++yIndex)
            {
                double y = dataY[yIndex];
                for (int xIndex = 0; xIndex < dataX.Length; ++xIndex)
                {
                    double x = dataX[xIndex];
                    dataZ[yIndex * (dataX.Length) + xIndex] = Math.Sin(x / 2.0) *
                                                              Math.Sin(y / 2.0);
                }
            }

            // Create a XYChart object of size 600 x 500 pixels
            XYChart c = new XYChart(600, 500);

            // Add a title to the chart using 18 points Times New Roman Bold Italic
            // font
            c.addTitle("Nano Lattice Twister Field Intensity        ",
                       "Times New Roman Bold Italic", 18);

            // Set the plotarea at (75, 40) and of size 400 x 400 pixels. Use
            // semi-transparent black (80000000) dotted lines for both horizontal and
            // vertical grid lines
            c.setPlotArea(75, 40, 400, 400, -1, -1, -1, c.dashLineColor(
                              unchecked ((int)0x80000000), Chart.DotLine), -1);

            // Set x-axis and y-axis title using 12 points Arial Bold Italic font
            c.xAxis().setTitle("Lattice X Direction (nm)", "Arial Bold Italic", 12);
            c.yAxis().setTitle("Lattice Y Direction (nm)", "Arial Bold Italic", 12);

            // Set x-axis and y-axis labels to use Arial Bold font
            c.xAxis().setLabelStyle("Arial Bold");
            c.yAxis().setLabelStyle("Arial Bold");

            // When auto-scaling, use tick spacing of 40 pixels as a guideline
            c.yAxis().setTickDensity(40);
            c.xAxis().setTickDensity(40);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Set the contour color to transparent
            layer.setContourColor(Chart.Transparent);

            // Move the grid lines in front of the contour layer
            c.getPlotArea().moveGridBefore(layer);

            // Add a color axis (the legend) in which the left center point is
            // anchored at (495, 240). Set the length to 370 pixels and the labels on
            // the right side.
            ColorAxis cAxis = layer.setColorAxis(495, 240, Chart.Left, 370,
                                                 Chart.Right);

            // Add a bounding box to the color axis using light grey (eeeeee) as the
            // background and dark grey (444444) as the border.
            cAxis.setBoundingBox(0xeeeeee, 0x444444);

            // Add a title to the color axis using 12 points Arial Bold Italic font
            cAxis.setTitle("Twist Pressure (Twist-Volt)", "Arial Bold Italic", 12);

            // Set color axis labels to use Arial Bold font
            cAxis.setLabelStyle("Arial Bold");

            // Use smooth gradient coloring
            cAxis.setColorGradient(true);

            // Output the chart
            viewer.Image = c.makeImage();
        }
        //Main code for creating chart.
        //Note: the argument chartIndex is unused because this demo only has 1 chart.
        public void createChart(WPFChartViewer viewer, int chartIndex)
        {
            // The x and y coordinates of the grid
            double[] dataX = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
            double[] dataY = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };

            // Use random numbers for the z values on the XY grid
            RanSeries r = new RanSeries(999);

            double[] dataZ = r.get2DSeries(dataX.Length, dataY.Length, -0.9, 1.15);

            // Create a XYChart object of size 640 x 460 pixels
            XYChart c = new XYChart(640, 460);

            // Set default text color to dark grey (0x333333)
            c.setColor(Chart.TextColor, 0x333333);

            // Set the plotarea at (30, 25) and of size 400 x 400 pixels. Use semi-transparent grey
            // (0xdd000000) horizontal and vertical grid lines
            c.setPlotArea(50, 25, 400, 400, -1, -1, Chart.Transparent, unchecked ((int)0xdd000000),
                          -1);

            // Set the x and y axis stems to transparent and the label font to 12pt Arial
            c.xAxis().setColors(Chart.Transparent);
            c.yAxis().setColors(Chart.Transparent);
            c.xAxis().setLabelStyle("Arial", 12);
            c.yAxis().setLabelStyle("Arial", 12);

            // Set the x-axis and y-axis scale
            c.xAxis().setLinearScale(0, 10, 1);
            c.yAxis().setLinearScale(0, 10, 1);

            // Add a contour layer using the given data
            ContourLayer layer = c.addContourLayer(dataX, dataY, dataZ);

            // Move the grid lines in front of the contour layer
            c.getPlotArea().moveGridBefore(layer);

            // Define the color scale
            double[] colorScale = { -0.8,     0x0066ff,     -0.5, 0x66ccff,     -0.3, 0x66ffff,        0, 0x88ff88, 0.4,
                                    0x00ff00,      0.7, 0xffff00,      0.9, 0xff6600,      1.0, 0xcc0000, 1.1 };
            // Apply the color scale, and specify the underflow and overflow colors for regions
            // exceeding the color scale
            layer.colorAxis().setColorScale(colorScale, 0x0000cc, 0x000000);

            //
            // Instead of displaying the color axis, we use a legend box to display the colors. This
            // is useful for colors that are unevenly spaced on the color axis.
            //

            // Add a legend box at (460, 25) with vertical layout, with 12pt Arial font, transparent
            // background and border, icon size of 15 x 15 pixels, and line spacing of 8 pixels.
            LegendBox b = c.addLegend(460, 25, true, "Arial", 12);

            b.setBackground(Chart.Transparent, Chart.Transparent);
            b.setKeySize(15, 15);
            b.setKeySpacing(0, 8);

            // Add the legend box entries
            b.addKey("> 1.1 (Critical)", 0x000000);
            b.addKey("1.0 to 1.1 (Alert)", 0xcc0000);
            b.addKey("0.9 to 1.0", 0xff6600);
            b.addKey("0.7 to 0.9", 0xffff00);
            b.addKey("0.4 to 0.7", 0x00ff00);
            b.addKey("0.0 to 0.4", 0x88ff88);
            b.addKey("-0.3 to 0.0", 0x66ffff);
            b.addKey("-0.5 to -0.3", 0x66ccff);
            b.addKey("-0.8 to -0.5", 0x0066ff);
            b.addKey("< -0.8", 0x0000cc);

            // Output the chart
            viewer.Chart = c;
        }
Пример #13
0
 public override void ChangeState(params object[] arguments)
 {
     Init();
     ChangeData((List <double[]>)arguments[0]);
     layer = chart.addContourLayer(dataX, dataY, dataZ);
 }