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(WinChartViewer viewer, int chartIndex) { // The data for the bar chart double[] data0 = { 100, 115, 165, 107, 67 }; double[] data1 = { 85, 106, 129, 161, 123 }; double[] data2 = { 67, 87, 86, 167, 157 }; // The labels for the bar chart string[] labels = { "Mon", "Tue", "Wed", "Thu", "Fri" }; // Create a XYChart object of size 600 x 360 pixels XYChart c = new XYChart(600, 360); // Set default text color to dark grey (0x333333) c.setColor(Chart.TextColor, 0x333333); // Set the plotarea at (70, 20) and of size 400 x 300 pixels, with transparent // background and border and light grey (0xcccccc) horizontal grid lines c.setPlotArea(70, 20, 400, 300, Chart.Transparent, -1, Chart.Transparent, 0xcccccc); // Add a legend box at (480, 20) using vertical layout and 12pt Arial font. Set // background and border to transparent and key icon border to the same as the fill // color. LegendBox b = c.addLegend(480, 20, true, "Arial", 12); b.setBackground(Chart.Transparent, Chart.Transparent); b.setKeyBorder(Chart.SameAsMainColor); // 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); // Add a stacked bar layer BarLayer layer = c.addBarLayer2(Chart.Stack); // Add the three data sets to the bar layer layer.addDataSet(data0, 0xaaccee, "Server # 1"); layer.addDataSet(data1, 0xbbdd88, "Server # 2"); layer.addDataSet(data2, 0xeeaa66, "Server # 3"); // Set the bar border to transparent layer.setBorderColor(Chart.Transparent); // Enable labelling for the entire bar and use 12pt Arial font layer.setAggregateLabelStyle("Arial", 12); // Enable labelling for the bar segments and use 12pt Arial font with center alignment layer.setDataLabelStyle("Arial", 10).setAlignment(Chart.Center); // For a vertical stacked bar with positive data, the first data set is at the bottom. // For the legend box, by default, the first entry at the top. We can reverse the legend // order to make the legend box consistent with the stacked bar. layer.setLegendOrder(Chart.ReverseLegend); // Set the labels on the x axis. c.xAxis().setLabels(labels); // For the automatic y-axis labels, set the minimum spacing to 40 pixels. c.yAxis().setTickDensity(40); // Add a title to the y axis using dark grey (0x555555) 14pt Arial Bold font c.yAxis().setTitle("Y-Axis Title Placeholder", "Arial Bold", 14, 0x555555); // Output the chart viewer.Chart = c; //include tool tip for the chart viewer.ImageMap = c.getHTMLImageMap("clickable", "", "title='{dataSetName} on {xLabel}: {value} MBytes/hour'"); }
//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}%)'"); }