//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 pie chart double[] data = { 25, 18, 15, 12, 8, 30, 35 }; // The labels for the pie chart string[] labels = { "Labor", "Licenses", "Taxes", "Legal", "Insurance", "Facilities", "Production" }; // Create a PieChart object of size 600 x 320 pixels. Set background // color to brushed silver, with a 2 pixel 3D border. Use rounded corners // of 20 pixels radius. PieChart c = new PieChart(600, 320, Chart.brushedSilverColor(), Chart.Transparent, 2); c.setRoundedFrame(0xffffff, 20); // Add a title using 18 pts Times New Roman Bold Italic font. #Set // top/bottom margins to 8 pixels. ChartDirector.TextBox title = c.addTitle("Donut Chart Demonstration", "Times New Roman Bold Italic", 18); title.setMargin2(0, 0, 8, 8); // Add a 2 pixels wide separator line just under the title c.addLine(10, title.getHeight(), c.getWidth() - 11, title.getHeight(), Chart.LineColor, 2); // Set donut center at (160, 175), and outer/inner radii as 110/55 pixels c.setDonutSize(160, 175, 110, 55); // Set the pie data and the pie labels c.setData(data, labels); // Use ring shading effect for the sectors c.setSectorStyle(Chart.RingShading); // Use the side label layout method, with the labels positioned 16 pixels // from the donut bounding box c.setLabelLayout(Chart.SideLayout, 16); // Show only the sector number as the sector label c.setLabelFormat("{={sector}+1}"); // Set the sector label style to Arial Bold 10pt, with a dark grey // (444444) border c.setLabelStyle("Arial Bold", 10).setBackground(Chart.Transparent, 0x444444); // Add a legend box, with the center of the left side anchored at (330, // 175), and using 10 pts Arial Bold Italic font LegendBox b = c.addLegend(330, 175, true, "Arial Bold Italic", 10); b.setAlignment(Chart.Left); // Set the legend box border to dark grey (444444), and with rounded // conerns b.setBackground(Chart.Transparent, 0x444444); b.setRoundedCorners(); // Set the legend box margin to 16 pixels, and the extra line spacing // between the legend entries as 5 pixels b.setMargin(16); b.setKeySpacing(0, 5); // Set the legend text to show the sector number, followed by a 120 // pixels wide block showing the sector label, and a 40 pixels wide block // showing the percentage b.setText( "<*block,valign=top*>{={sector}+1}.<*advanceTo=22*>" + "<*block,width=120*>{label}<*/*><*block,width=40,halign=right*>" + "{percent}<*/*>%"); // Output the chart viewer.Image = c.makeImage(); //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='{label}: US${value}K ({percent}%)'"); }
//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; }
public void createChart(WinChartViewer viewer, DataTable dt_chart, string title) { try { Chart.setLicenseCode("DEVP-2LSU-B4LX-YCTY-2DF2-77EE"); double[] data = new double[dt_chart.Rows.Count]; string[] labels = new string[dt_chart.Rows.Count]; for (int i = 0; i < dt_chart.Rows.Count; i++) { data[i] = Convert.ToDouble(dt_chart.Rows[i]["RATE"].ToString()); labels[i] = dt_chart.Rows[i]["reason_tail_nm"].ToString(); } // The colors to use for the sectors int[] colors = { 0x66aaee, 0xeebb22, 0xbbbbbb, 0x8844ff, 0xdd2222, 0x009900, 0xff8040, 0xaa0023 }; // Create a PieChart object of size 600 x 320 pixels. Use a vertical // gradient color from light blue (99ccff) to white (ffffff) spanning the // top 100 pixels as background. Set border to grey (888888). Use rounded // corners. Enable soft drop shadow. PieChart c = new PieChart(690, 310); c.setBackground(c.linearGradientColor(0, 0, 0, 100, 0x99ccff, 0xffffff), 0x888888); c.setRoundedFrame(); c.setDropShadow(); // Add a title using 18 pts Times New Roman Bold Italic font. Add 16 // pixels top margin to the title. c.addTitle(title, "Times New Roman Bold Italic", 18).setMargin2(0, 0, 1, 0); // Set the center of the pie at (160, 165) and the radius to 110 pixels c.setPieSize(230, 170, 140); // Draw the pie in 3D with a pie thickness of 25 pixels c.set3D(25); // Set the pie data and the pie labels c.setData(data, labels); // Set the sector colors c.setColors2(Chart.DataColor, colors); // Use local gradient shading for the sectors c.setSectorStyle(Chart.LocalGradientShading); // Use the side label layout method, with the labels positioned 16 pixels // from the pie bounding box c.setLabelLayout(Chart.Transparent, 16); // Show only the sector number as the sector label c.setLabelFormat("{percent} % "); // Set the sector label style to Arial Bold 10pt, with a dark grey // (444444) border c.setLabelStyle("Arial Bold", 10).setBackground(Chart.Transparent, 0x444444); // Add a legend box, with the center of the left side anchored at (330, // 175), and using 10 pts Arial Bold Italic font LegendBox b = new LegendBox(); b = c.addLegend(470, 150, true, "Arial Bold Italic", 12); b.setAlignment(Chart.Left); // Set the legend box border to dark grey (444444), and with rounded // conerns b.setBackground(Chart.Transparent, 0x444444); b.setRoundedCorners(); // Set the legend box margin to 16 pixels, and the extra line spacing // between the legend entries as 5 pixels b.setMargin(16); b.setKeySpacing(0, 5); // Set the legend box icon to have no border (border color same as fill // color) b.setKeyBorder(Chart.SameAsMainColor); // Set the legend text to show the sector number, followed by a 120 // pixels wide block showing the sector label, and a 40 pixels wide block // showing the percentage b.setText( "<*block,valign=top*> <*advanceTo=22*>" + "<*block,width=140*>{label}<*/*>"); // Output the chart viewer.Chart = c; //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='{label}: {percent} % '"); } catch { } // The data for the pie chart //dt_chart = this.select_chart_1(); }
//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 data for the pie chart double[] data = { 21, 18, 15, 12, 8, 24 }; // The labels for the pie chart string[] labels = { "Labor", "Licenses", "Taxes", "Legal", "Facilities", "Production" }; // The colors to use for the sectors int[] colors = { 0x66aaee, 0xeebb22, 0xbbbbbb, 0x8844ff, 0xdd2222, 0x009900 }; // Create a PieChart object of size 600 x 320 pixels. Use a vertical gradient color from // light blue (99ccff) to white (ffffff) spanning the top 100 pixels as background. Set // border to grey (888888). Use rounded corners. Enable soft drop shadow. PieChart c = new PieChart(600, 320); c.setBackground(c.linearGradientColor(0, 0, 0, 100, 0x99ccff, 0xffffff), 0x888888); c.setRoundedFrame(); c.setDropShadow(); // Add a title using 18pt Times New Roman Bold Italic font. Add 16 pixels top margin to // the title. c.addTitle("Pie Chart With Legend Demonstration", "Times New Roman Bold Italic", 18 ).setMargin2(0, 0, 16, 0); // Set the center of the pie at (160, 165) and the radius to 110 pixels c.setPieSize(160, 165, 110); // Draw the pie in 3D with a pie thickness of 25 pixels c.set3D(25); // Set the pie data and the pie labels c.setData(data, labels); // Set the sector colors c.setColors2(Chart.DataColor, colors); // Use local gradient shading for the sectors c.setSectorStyle(Chart.LocalGradientShading); // Use the side label layout method, with the labels positioned 16 pixels from the pie // bounding box c.setLabelLayout(Chart.SideLayout, 16); // Show only the sector number as the sector label c.setLabelFormat("{={sector}+1}"); // Set the sector label style to Arial Bold 10pt, with a dark grey (444444) border c.setLabelStyle("Arial Bold", 10).setBackground(Chart.Transparent, 0x444444); // Add a legend box, with the center of the left side anchored at (330, 175), and using // 10pt Arial Bold Italic font LegendBox b = c.addLegend(330, 175, true, "Arial Bold Italic", 10); b.setAlignment(Chart.Left); // Set the legend box border to dark grey (444444), and with rounded conerns b.setBackground(Chart.Transparent, 0x444444); b.setRoundedCorners(); // Set the legend box margin to 16 pixels, and the extra line spacing between the legend // entries as 5 pixels b.setMargin(16); b.setKeySpacing(0, 5); // Set the legend box icon to have no border (border color same as fill color) b.setKeyBorder(Chart.SameAsMainColor); // Set the legend text to show the sector number, followed by a 120 pixels wide block // showing the sector label, and a 40 pixels wide block showing the percentage b.setText( "<*block,valign=top*>{={sector}+1}.<*advanceTo=22*><*block,width=120*>{label}" + "<*/*><*block,width=40,halign=right*>{percent}<*/*>%"); // Output the chart viewer.Chart = c; //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='{label}: US${value}K ({percent}%)'"); }