public byte[] CreateChart(IList<ChartItemParm> dateItem, string[] labels, string title, string bottom_text, string left_text, string scaleFromat) { string font_1 = "微軟正黑體"; string font_2 = "新細明體"; int CanvasWidth = CommWebSetup.Chart_Canvas_Width; int DiagramWidth = CommWebSetup.Chart_Diagram_Width; XYChart xyCht = new XYChart(CanvasWidth, CommWebSetup.Chart_Canvas_Height, CommWebSetup.Chart_Canvas_BgColor, CommWebSetup.Chart_Canvas_EdgeColor, 1); //設定畫布區大小 //parm 5:奇數列顏色 //parm 6:偶數列顏色 //parm 7:外框顏色 xyCht.setPlotArea(72, 90, DiagramWidth, CommWebSetup.Chart_Diagram_Height, 0xefefef, 0xfefefe, Chart.Transparent, 0x999999, 0x999999); //繪制圖表的位置及大小 xyCht.setRoundedFrame(); TextBox getTitleText = xyCht.addTitle(title, CommWebSetup.Chart_Title_FontFamily, CommWebSetup.Chart_Title_FontSize, CommWebSetup.Chart_Title_FontColor, CommWebSetup.Chart_Title_BgColor); getTitleText.setHeight(CommWebSetup.Chart_Title_Height); getTitleText.setAlignment(Chart.Center); //設定上方資訊綜合區 LegendBox legendBox = xyCht.addLegend(72, getTitleText.getHeight(), false, font_1, 10); legendBox.setAlignment(Chart.TopLeft); legendBox.setBackground(Chart.Transparent, Chart.Transparent); //左側處理 TextBox getY = xyCht.yAxis().setTitle(left_text, font_2, 14); getY.setFontAngle(0, true); xyCht.yAxis().setWidth(2); getY.setHeight(CommWebSetup.Chart_Diagram_Height); var getScaleText = xyCht.yAxis().setLabelStyle(font_2, 9); if (scaleFromat != null) { xyCht.yAxis().setLabelFormat(scaleFromat); //設定左邊刻度格式 //xyCht.yAxis().setLabelFormat("{value}度"); } //底部處理 var getBottomText = xyCht.xAxis().setTitle(bottom_text, font_1,14); var getBottomlabel = xyCht.xAxis().setLabels(labels); getBottomlabel.setFontSize(9); getBottomlabel.setFontStyle(font_2); //xyCht.xAxis().setLabelStep(3); //設定Label間隔(橫向) 如果Label太密集可在此設定 foreach (var getItem in dateItem) { LineLayer setLine = xyCht.addLineLayer2(); setLine.addDataSet(getItem.getData, getItem.color, getItem.name).setDataSymbol(Chart.GlassSphere2Shape, 9); setLine.setLineWidth(2); setLine.setGapColor(xyCht.dashLineColor(getItem.color)); //設定無值顏色 } //c.layoutLegend(); return xyCht.makeChart(Chart.PNG); }
public byte[] CreateBar(double[] dateItem, string[] labels, string title, string bottom_text, string left_text, string scaleFromat) { string font_1 = "微軟正黑體"; string font_2 = "新細明體"; int CanvasWidth = CommWebSetup.Chart_Canvas_Width; int DiagramWidth = CommWebSetup.Chart_Diagram_Width; XYChart xyCht = new XYChart(CanvasWidth, CommWebSetup.Chart_Canvas_Height, 0xffffff, 0xffffff, 0); //設定畫布區大小 //parm 5:奇數列顏色 //parm 6:偶數列顏色 //parm 7:外框顏色 xyCht.setPlotArea(60, 72, DiagramWidth, CommWebSetup.Chart_Diagram_Height, 0xffffff, 0xffffff, 0xffffff, 0x999999, 0xffffff); //繪制圖表的位置及大小 xyCht.setRoundedFrame(); TextBox getTitleText = xyCht.addTitle(title, CommWebSetup.Chart_Title_FontFamily, CommWebSetup.Chart_Title_FontSize, CommWebSetup.Chart_Title_FontColor, 0xffffff); getTitleText.setHeight(CommWebSetup.Chart_Title_Height); getTitleText.setAlignment(Chart.Center); //設定上方資訊綜合區 LegendBox legendBox = xyCht.addLegend(72, getTitleText.getHeight(), false, font_1, 10); legendBox.setAlignment(Chart.TopLeft); legendBox.setBackground(Chart.Transparent, Chart.Transparent); //左側處理 TextBox getY = xyCht.yAxis().setTitle(left_text, font_2, 14); getY.setFontAngle(0, true); xyCht.yAxis().setWidth(2); getY.setHeight(CommWebSetup.Chart_Diagram_Height); var getScaleText = xyCht.yAxis().setLabelStyle(font_2, 9); if (scaleFromat != null) { xyCht.yAxis().setLabelFormat(scaleFromat); //設定左邊刻度格式 //xyCht.yAxis().setLabelFormat("{value}度"); } //底部處理 var getBottomText = xyCht.xAxis().setTitle(bottom_text, font_1, 14); var getBottomlabel = xyCht.xAxis().setLabels(labels); getBottomlabel.setFontSize(9); getBottomlabel.setFontStyle(font_2); //xyCht.xAxis().setLabelStep(3); //設定Label間隔(橫向) 如果Label太密集可在此設定 var col1 = Convert.ToInt32("EA8D8D", 16); var col2 = Convert.ToInt32("FFE699", 16); var col3 = Convert.ToInt32("9DC3E6", 16); var col4 = Convert.ToInt32("70AD47", 16); var col5 = Convert.ToInt32("ED7D31", 16); var colors = new int[] { col1, col2, col3, col4, col5 }; //var names = new string[] { "紅一", "紅二", "紅三", "紅四", "紅五" }; var layer = xyCht.addBarLayer3(dateItem, colors); layer.setAggregateLabelStyle("Arial", 8); layer.setBarWidth(32); return xyCht.makeChart(Chart.PNG); }