Пример #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 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;
             */
        }