예제 #1
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 data for the area chart
            double[] data0 = { 42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34,
                               51, 56, 56, 60, 70, 76, 63, 67, 75, 64, 51 };
            double[] data1 = { 50, 45, 47, 34, 42, 49, 63, 62, 73, 59, 56, 50, 64, 60,
                               67, 67, 58, 59, 73, 77, 84, 82, 80, 84, 89 };
            double[] data2 = { 61, 79, 85, 66, 53, 39, 24, 21, 37, 56, 37, 22, 21, 33,
                               13, 17,  4, 23, 16, 25,  9, 10,  5,  7, 16 };
            string[] labels = { "0",  "1",  "2",  "3",  "4",  "5",  "6",  "7",  "8",  "9",
                                "10", "11", "12", "13", "14", "15", "16", "17", "18", "19","20",
                                "21", "22", "23", "24" };

            // Create a XYChart object of size 300 x 210 pixels. Set the background
            // to pale yellow (0xffffc0) with a black border (0x0)
            XYChart c = new XYChart(300, 210, 0xffffc0, 0x000000);

            // Set the plotarea at (50, 30) and of size 240 x 140 pixels. Use white
            // (0xffffff) background.
            c.setPlotArea(50, 30, 240, 140).setBackground(0xffffff);

            // Add a legend box at (50, 185) (below of plot area) using horizontal
            // layout. Use 8 pts Arial font with Transparent background.
            c.addLegend(50, 185, false, "", 8).setBackground(Chart.Transparent);

            // Add a title box to the chart using 8 pts Arial Bold font, with yellow
            // (0xffff40) background and a black border (0x0)
            c.addTitle("Sales Volume", "Arial Bold", 8).setBackground(0xffff40, 0);

            // Set the y axis label format to US$nnnn
            c.yAxis().setLabelFormat("US${value}");

            // Set the labels on the x axis.
            c.xAxis().setLabels(labels);

            // Display 1 out of 2 labels on the x-axis. Show minor ticks for
            // remaining labels.
            c.xAxis().setLabelStep(2, 1);

            // Add an stack area layer with three data sets
            AreaLayer layer = c.addAreaLayer2(Chart.Stack);

            layer.addDataSet(data0, 0x4040ff, "Store #1");
            layer.addDataSet(data1, 0xff4040, "Store #2");
            layer.addDataSet(data2, 0x40ff40, "Store #3");

            // Output the chart
            viewer.Image = c.makeImage();

            //include tool tip for the chart
            viewer.ImageMap = c.getHTMLImageMap("clickable", "",
                                                "title='{dataSetName} sales at hour {xLabel}: US${value}K'");
        }
        //Main code for creating chart.
        //Note: the argument chartIndex is unused because this demo only has 1 chart.
        public void createChart(WinChartViewer viewer, int chartIndex)
        {
            // The data for the area chart
            double[] data0 = { 42, 49, 33, 38, 51, 46, 29, 41, 44, 57, 59, 52, 37, 34, 51, 56, 56,
                               60, 70, 76, 63, 67, 75, 64, 51 };
            double[] data1 = { 50, 55, 47, 34, 42, 49, 63, 62, 73, 59, 56, 50, 64, 60, 67, 67, 58,
                               59, 73, 77, 84, 82, 80, 84, 98 };
            double[] data2 = { 87, 89, 85, 66, 53, 39, 24, 21, 37, 56, 37, 23, 21, 33, 13, 17, 14,
                               23, 16, 25, 29, 30, 45, 47, 46 };

            // The timestamps on the x-axis
            DateTime[] labels = { new DateTime(1996,                                                                                                                                                             1, 1), new DateTime(1996,                 4, 1), new DateTime(
                                      1996,                                                                                                                                                                      7, 1), new DateTime(1996,                10, 1), new DateTime(1997,                 1, 1), new DateTime(1997,
                                                                                                                                                                                                                                                                                                                         4,                                                                                         1), new DateTime(1997,  7,                1), new DateTime(1997, 10,                1),new DateTime(1998,1, 1
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        ), new DateTime(1998,  4,                1), new DateTime(1998,  7,                1), new DateTime(1998, 10,1),
                                  new DateTime(1999,                                                                                                                                                             1, 1), new DateTime(1999,                 4, 1), new DateTime(1999,                 7, 1),
                                  new DateTime(1999,                                                                                                                                                            10, 1), new DateTime(2000,                 1, 1), new DateTime(2000,                 4, 1),
                                  new DateTime(2000,                                                                                                                                                             7, 1), new DateTime(2000,                10, 1), new DateTime(2001,                 1, 1),
                                  new DateTime(2001,                                                                                                                                                             4, 1), new DateTime(2001,                 7, 1), new DateTime(2001,                10, 1),
                                  new DateTime(2002,                                                                                                                                                             1, 1) };

            // Create a XYChart object of size 500 x 280 pixels, using 0xffffcc as background color,
            // with a black border, and 1 pixel 3D border effect
            XYChart c = new XYChart(500, 280, 0xffffcc, 0, 1);

            // Set the plotarea at (50, 45) and of size 320 x 200 pixels with white background.
            // Enable horizontal and vertical grid lines using the grey (0xc0c0c0) color.
            c.setPlotArea(50, 45, 320, 200, 0xffffff).setGridColor(0xc0c0c0, 0xc0c0c0);

            // Add a legend box at (370, 45) using vertical layout and 8 points Arial Bold font.
            LegendBox legendBox = c.addLegend(370, 45, true, "Arial Bold", 8);

            // Set the legend box background and border to transparent
            legendBox.setBackground(Chart.Transparent, Chart.Transparent);

            // Set the legend box icon size to 16 x 32 pixels to match with custom icon size
            legendBox.setKeySize(16, 32);

            // Add a title to the chart using 14 points Times Bold Itatic font and white font color,
            // and 0x804020 as the background color
            c.addTitle("Quarterly Product Sales", "Times New Roman Bold Italic", 14, 0xffffff
                       ).setBackground(0x804020);

            // Set the labels on the x axis.
            c.xAxis().setLabels2(labels);

            // Set multi-style axis label formatting. Start of year labels are displayed as yyyy.
            // For other labels, just show minor tick.
            c.xAxis().setMultiFormat(Chart.StartOfYearFilter(), "{value|yyyy}", Chart.AllPassFilter(
                                         ), "-");

            // Add a percentage area layer to the chart
            AreaLayer layer = c.addAreaLayer2(Chart.Percentage);

            // Add the three data sets to the area layer, using icons images with labels as data set
            // names
            layer.addDataSet(data0, 0x40ddaa77,
                             "<*block,valign=absmiddle*><*img=service.png*> Service<*/*>");
            layer.addDataSet(data1, 0x40aadd77,
                             "<*block,valign=absmiddle*><*img=software.png*> Software<*/*>");
            layer.addDataSet(data2, 0x40aa77dd,
                             "<*block,valign=absmiddle*><*img=computer.png*> Hardware<*/*>");

            // For a vertical stacked chart with positive data only, the last data set is always on
            // top. However, in a vertical legend box, the last data set is at the bottom. This can
            // be reversed by using the setLegend method.
            layer.setLegend(Chart.ReverseLegend);

            // Output the chart
            viewer.Chart = c;

            //include tool tip for the chart
            viewer.ImageMap = c.getHTMLImageMap("clickable", "",
                                                "title='{dataSetName} sales at {xLabel|yyyy} Q{=({xLabel|m}+2)/3|0}: US${value}K " +
                                                "({percent}%)'");
        }