private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            // The XY data of the first data series
            double[] dataX = { 50, 55, 37, 24, 42, 49, 63, 72, 83, 59 };
            double[] dataY = { 3.6, 2.8, 2.5, 2.3, 3.8, 3.0, 3.8, 5.0, 6.0, 3.3 };

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

            // Set the plotarea at (60, 40) and of size 450 x 400 pixels, with white background and a light
            // grey border (0xc0c0c0). Turn on both horizontal and vertical grid lines with light grey color
            // (0xc0c0c0)
            c.setPlotArea(60, 40, 450, 400, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1);

            // Add a title to the chart using 18 point Times Bold Itatic font.
            c.addTitle("      Chemical X Thermal Conductivity", "Times New Roman Bold Italic", 18);

            // Add titles to the axes using 12pt Arial Bold Italic font
            c.yAxis().setTitle("Thermal Conductivity (W/K)", "Arial Bold Italic", 12);
            c.xAxis().setTitle("Concentration (g/liter)", "Arial Bold Italic", 12);

            // Set the axes line width to 3 pixels
            c.yAxis().setWidth(3);
            c.xAxis().setWidth(3);

            // Add a scatter layer using (dataX, dataY)
            ScatterLayer scatterLayer = c.addScatterLayer(dataX, dataY, "", Chart.GlassSphereShape, 13,
                                                          0xcc0000);

            // Tooltip for the scatter layer
            scatterLayer.setHTMLImageMap("", "",
                                         "title='Concentration: {x} g/liter, Conductivity: {value} W/K'");

            // Add a trend line layer for (dataX, dataY)
            TrendLayer trendLayer = c.addTrendLayer2(dataX, dataY, 0xcc0000);

            // Set the line width to 3 pixels
            trendLayer.setLineWidth(3);

            // Add a 95% confidence band for the line
            trendLayer.addConfidenceBand(0.95, unchecked ((int)0x806666ff));

            // Add a 95% confidence band (prediction band) for the points
            trendLayer.addPredictionBand(0.95, unchecked ((int)0x8066ff66));

            // Tool tip for the trend layer
            trendLayer.setHTMLImageMap("", "", "title='Trend Line: y = {slope|P4} x + {intercept|P4}'");

            // Add a legend box at (60, 35) (top of the chart) with horizontal layout. Use 10pt Arial Bold
            // Italic font. Set the background and border color to Transparent and use line style legend
            // icons.
            LegendBox legendBox = c.addLegend(60, 35, false, "Arial Bold Italic", 9);

            legendBox.setBackground(Chart.Transparent);
            legendBox.setLineStyleKey(true);

            // Add entries to the legend box
            legendBox.addKey("95% Line Confidence", unchecked ((int)0x806666ff));
            legendBox.addKey("95% Point Confidence", unchecked ((int)0x8066ff66));
            legendBox.addKey(String.Format("Trend Line: y = {0:0.0000} x + {1:0.0000}", trendLayer.getSlope(),
                                           trendLayer.getIntercept()), 0xcc0000, 3);

            // Assign the chart to the WPFChartViewer
            WPFChartViewer1.Chart = c;

            // Include tool tip for the chart
            WPFChartViewer1.ImageMap = c.getHTMLImageMap("");
        }
Exemple #2
0
        //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 XY data of the first data series
            double[] dataX = { 50, 55, 37, 24, 42, 49, 63, 72, 83, 59 };
            double[] dataY = { 3.6, 2.8, 2.5, 2.3, 3.8, 3.0, 3.8, 5.0, 6.0, 3.3 };

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

            // Set the plotarea at (55, 65) and of size 350 x 300 pixels, with white background and
            // a light grey border (0xc0c0c0). Turn on both horizontal and vertical grid lines with
            // light grey color (0xc0c0c0)
            c.setPlotArea(55, 65, 350, 300, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1);

            // Add a title to the chart using 18 point Times Bold Itatic font.
            c.addTitle("Server Performance", "Times New Roman Bold Italic", 18);

            // Add titles to the axes using 12pt Arial Bold Italic font
            c.yAxis().setTitle("Response Time (sec)", "Arial Bold Italic", 12);
            c.xAxis().setTitle("Server Load (TPS)", "Arial Bold Italic", 12);

            // Set the axes line width to 3 pixels
            c.yAxis().setWidth(3);
            c.xAxis().setWidth(3);

            // Add a scatter layer using (dataX, dataY)
            ScatterLayer scatterLayer = c.addScatterLayer(dataX, dataY, "", Chart.DiamondSymbol, 11,
                                                          0x008000);

            // tool tip for scatter layer
            scatterLayer.setHTMLImageMap("", "", "title='Response time at {x} TPS: {value} sec'");

            // Add a trend line layer for (dataX, dataY)
            TrendLayer trendLayer = c.addTrendLayer2(dataX, dataY, 0x008000);

            // Set the line width to 3 pixels
            trendLayer.setLineWidth(3);

            // Add a 95% confidence band for the line
            trendLayer.addConfidenceBand(0.95, unchecked ((int)0x806666ff));

            // Add a 95% confidence band (prediction band) for the points
            trendLayer.addPredictionBand(0.95, unchecked ((int)0x8066ff66));

            // tool tip for trend layer
            trendLayer.setHTMLImageMap("", "",
                                       "title='Slope = {slope|4} sec/TPS; Intercept = {intercept|4} sec'");

            // Add a legend box at (50, 30) (top of the chart) with horizontal layout. Use 10pt
            // Arial Bold Italic font. Set the background and border color to Transparent.
            LegendBox legendBox = c.addLegend(50, 30, false, "Arial Bold Italic", 10);

            legendBox.setBackground(Chart.Transparent);

            // Add entries to the legend box
            legendBox.addKey("95% Line Confidence", unchecked ((int)0x806666ff));
            legendBox.addKey("95% Point Confidence", unchecked ((int)0x8066ff66));

            // Display the trend line parameters as a text table formatted using CDML
            ChartDirector.TextBox textbox = c.addText(56, 65, String.Format(
                                                          "<*block*>Slope\nIntercept\nCorrelation\nStd Error<*/*>   <*block*>{0:0.0000} " +
                                                          "sec/tps\n{1:0.0000} sec\n{2:0.0000}\n{3:0.0000} sec<*/*>", trendLayer.getSlope(),
                                                          trendLayer.getIntercept(), trendLayer.getCorrelation(), trendLayer.getStdError()),
                                                      "Arial Bold", 8);

            // Set the background of the text box to light grey, with a black border, and 1 pixel 3D
            // border
            textbox.setBackground(0xc0c0c0, 0, 1);

            // Output the chart
            viewer.Chart = c;

            // include tool tip for the chart
            viewer.ImageMap = c.getHTMLImageMap("clickable");
        }
        //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 XY data of the first data series
            double[] dataX0 = { 10, 35, 17, 4, 22, 29, 45, 52, 63, 39 };
            double[] dataY0 = { 2.0, 3.2, 2.7, 1.2, 2.8, 2.9, 3.1, 3.0, 2.3, 3.3 };

            // The XY data of the second data series
            double[] dataX1 = { 30, 35, 17, 4, 22, 59, 43, 52, 63, 39 };
            double[] dataY1 = { 1.0, 1.3, 0.7, 0.6, 0.8, 3.0, 1.8, 2.3, 3.4, 1.5 };

            // The XY data of the third data series
            double[] dataX2 = { 28, 35, 15, 10, 22, 60, 46, 64, 39 };
            double[] dataY2 = { 2.0, 2.2, 1.2, 0.4, 1.8, 2.7, 2.4, 2.8, 2.4 };

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

            // Set the plotarea at (70, 65) and of size 400 x 350 pixels, with white
            // background and a light grey border (0xc0c0c0). Turn on both horizontal
            // and vertical grid lines with light grey color (0xc0c0c0)
            c.setPlotArea(70, 65, 400, 350, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1);

            // Add a legend box with the top center point anchored at (270, 30). Use
            // horizontal layout. Use 10 pts Arial Bold Italic font. Set the
            // background and border color to Transparent.
            LegendBox legendBox = c.addLegend(270, 30, false, "Arial Bold Italic", 10
                                              );

            legendBox.setAlignment(Chart.TopCenter);
            legendBox.setBackground(Chart.Transparent, Chart.Transparent);

            // Add a title to the chart using 18 point Times Bold Itatic font.
            c.addTitle("Parametric Curve Fitting", "Times New Roman Bold Italic", 18)
            ;

            // Add titles to the axes using 12 pts Arial Bold Italic font
            c.yAxis().setTitle("Axis Title Placeholder", "Arial Bold Italic", 12);
            c.xAxis().setTitle("Axis Title Placeholder", "Arial Bold Italic", 12);

            // Set the axes line width to 3 pixels
            c.yAxis().setWidth(3);
            c.xAxis().setWidth(3);

            // Add a scatter layer using (dataX0, dataY0)
            c.addScatterLayer(dataX0, dataY0, "Polynomial", Chart.GlassSphere2Shape,
                              11, 0xff0000);

            // Add a degree 2 polynomial trend line layer for (dataX0, dataY0)
            TrendLayer trend0 = c.addTrendLayer2(dataX0, dataY0, 0xff0000);

            trend0.setLineWidth(3);
            trend0.setRegressionType(Chart.PolynomialRegression(2));
            trend0.setHTMLImageMap("{disable}");

            // Add a scatter layer for (dataX1, dataY1)
            c.addScatterLayer(dataX1, dataY1, "Exponential", Chart.GlassSphere2Shape,
                              11, 0x00aa00);

            // Add an exponential trend line layer for (dataX1, dataY1)
            TrendLayer trend1 = c.addTrendLayer2(dataX1, dataY1, 0x00aa00);

            trend1.setLineWidth(3);
            trend1.setRegressionType(Chart.ExponentialRegression);
            trend1.setHTMLImageMap("{disable}");

            // Add a scatter layer using (dataX2, dataY2)
            c.addScatterLayer(dataX2, dataY2, "Logarithmic", Chart.GlassSphere2Shape,
                              11, 0x0000ff);

            // Add a logarithmic trend line layer for (dataX2, dataY2)
            TrendLayer trend2 = c.addTrendLayer2(dataX2, dataY2, 0x0000ff);

            trend2.setLineWidth(3);
            trend2.setRegressionType(Chart.LogarithmicRegression);
            trend2.setHTMLImageMap("{disable}");

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

            //include tool tip for the chart
            viewer.ImageMap = c.getHTMLImageMap("clickable", "",
                                                "title='[{dataSetName}] ({x}, {value})'");
        }
Exemple #4
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 XY data of the first data series
            double[] dataX0 = { 50, 55, 37, 24, 42, 49, 63, 72, 83, 59 };
            double[] dataY0 = { 3.6, 2.8, 2.5, 2.3, 3.8, 3.0, 3.8, 5.0, 6.0, 3.3 };

            // The XY data of the second data series
            double[] dataX1 = { 50, 55, 37, 24, 42, 49, 63, 72, 83, 59 };
            double[] dataY1 = { 1.6, 1.8, 0.8, 0.5, 1.3, 1.5, 2.3, 2.4, 2.9, 1.5 };

            // Tool tip formats for data points and trend lines
            string scatterToolTip =
                "title='{dataSetName}: Response time at {x} TPS: {value} sec'";
            string trendToolTip =
                "title='Slope = {slope|4} sec/TPS; Intercept = {intercept|4} sec'";

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

            // Set the plotarea at (55, 65) and of size 350 x 300 pixels, with white
            // background and a light grey border (0xc0c0c0). Turn on both horizontal
            // and vertical grid lines with light grey color (0xc0c0c0)
            c.setPlotArea(55, 65, 350, 300, 0xffffff, -1, 0xc0c0c0, 0xc0c0c0, -1);

            // Add a legend box at (50, 30) (top of the chart) with horizontal
            // layout. Use 12 pts Times Bold Italic font. Set the background and
            // border color to Transparent.
            c.addLegend(50, 30, false, "Times New Roman Bold Italic", 12
                        ).setBackground(Chart.Transparent);

            // Add a title to the chart using 18 point Times Bold Itatic font.
            c.addTitle("Server Performance", "Times New Roman Bold Italic", 18);

            // Add titles to the axes using 12 pts Arial Bold Italic font
            c.yAxis().setTitle("Response Time (sec)", "Arial Bold Italic", 12);
            c.xAxis().setTitle("Server Load (TPS)", "Arial Bold Italic", 12);

            // Set the axes line width to 3 pixels
            c.yAxis().setWidth(3);
            c.xAxis().setWidth(3);

            // Add a scatter layer using (dataX0, dataY0)
            ScatterLayer scatter1 = c.addScatterLayer(dataX0, dataY0, "Server AAA",
                                                      Chart.DiamondSymbol, 11, 0x008000);

            scatter1.setHTMLImageMap("", "", scatterToolTip);

            // Add a trend line layer for (dataX0, dataY0)
            TrendLayer trend1 = c.addTrendLayer2(dataX0, dataY0, 0x008000);

            trend1.setLineWidth(3);
            trend1.setHTMLImageMap("", "", trendToolTip);

            // Add a scatter layer for (dataX1, dataY1)
            ScatterLayer scatter2 = c.addScatterLayer(dataX1, dataY1, "Server BBB",
                                                      Chart.TriangleSymbol, 9, 0x6666ff);

            scatter2.setHTMLImageMap("", "", scatterToolTip);

            // Add a trend line layer for (dataX1, dataY1)
            TrendLayer trend2 = c.addTrendLayer2(dataX1, dataY1, 0x6666ff);

            trend2.setLineWidth(3);
            trend2.setHTMLImageMap("", "", trendToolTip);

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

            // include tool tip for the chart
            viewer.ImageMap = c.getHTMLImageMap("clickable");
        }