C#中CHART画图

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

C#chart控件绘制多图表区图像想要根据数据库中记录个数动态决定chart控件的绘图区域,保证它们大小均匀,在网上找了N久么有发现满意答案,纠结了快一天的时间,终于把问题解决了,贴出来供大家分享O(∩_∩)O~前面的代码中定义一个series对象数组:ListSerieslistSer=newListSeries();引发动态生成图表的按钮事件完整如下:privatevoidbutton1_Click(objectsender,EventArgse){OConMycon=newOCon();OracleConnectionconn=Mycon.getCon();conn.Open();stringsqlString=selectcount(*)fromdotrelationwheredotdesclike'2%路基%温度%';num=Mycon.countORL(conn,sqlString);//获得数据库中满足条件的记录数//MessageBox.Show(满足条件的数据记录为+num);intheightPer=100/num;//计算每个绘图区高度for(inti=0;inum;i++){stringserName=test+i.ToString();listSer.Add(newSeries(serName));//对象数组fillData(date);//初始化数组此方法自己定义的initialSeries((Series)listSer[i],Color.Red,date);chart1.ChartAreas.Add(ANOTHER+i);//这里是关键!!!!!chart1.ChartAreas[i].Position.Width=100;//绘图区域在控件中的宽度100是百分比chart1.ChartAreas[i].Position.Height=heightPer;chart1.ChartAreas[i].Position.X=5;//绘图区域在控件中的绝对位置横坐标chart1.ChartAreas[i].Position.Y=3+heightPer*i;//绘图区域在控件中的绝对位置纵坐标chart1.ChartAreas[i].AxisX.LineColor=Color.Blue;chart1.ChartAreas[i].AxisY.LineColor=Color.Blue;chart1.ChartAreas[i].AxisX.LineWidth=2;chart1.ChartAreas[i].AxisY.LineWidth=2;chart1.ChartAreas[i].AxisY.Title=监测值;//设置网格线chart1.ChartAreas[i].AxisX.MajorGrid.LineColor=Color.Blue;chart1.ChartAreas[i].AxisX.MajorGrid.Interval=2;//网格间隔chart1.ChartAreas[i].AxisX.MinorGrid.Interval=2;chart1.ChartAreas[i].AxisY.MajorGrid.LineColor=Color.Blue;chart1.ChartAreas[i].AxisY.MajorGrid.Interval=2;chart1.ChartAreas[i].AxisY.MinorGrid.Interval=2;chart1.Series[i].IsValueShownAsLabel=false;//是否显示数据chart1.Series[i].IsVisibleInLegend=false;//是否显示数据说明chart1.Series[i].MarkerStyle=MarkerStyle.Circle;//线条上的数据点标志类型chart1.Series[i].MarkerSize=3;//标志大小chart1.Series[i].ChartType=SeriesChartType.Line;//图表类型为曲线stringname=ANOTHER+i.ToString();chart1.Series[i].ChartArea=name;//指定绘图区域chart1.ChartAreas[i].AxisX.LineColor=Color.Blue;//X轴颜色chart1.ChartAreas[i].AxisY.LineColor=Color.Blue;//Y轴颜色chart1.ChartAreas[i].AxisX.LineWidth=2;//X轴宽度chart1.ChartAreas[i].AxisY.LineWidth=2;//Y轴宽度chart1.ChartAreas[i].AxisY.Title=人数;//Y轴标题}//fillData(date);//初始化数组//initialSeries(series1,Color.Red,date);initalChart();//图表初始化}C#中CHART控件简单示例:asp:ChartID=Chart1runat=serverHeight=400pxWidth=500pxSeriesasp:SeriesName=Series1ChartType=ColumnChartArea=ChartArea1/asp:Seriesasp:SeriesName=Series2ChartType=ColumnChartArea=ChartArea1/asp:Series/SeriesChartAreasasp:ChartAreaName=ChartArea1/asp:ChartArea/ChartAreas/asp:Chart后台代码:protectedvoidPage_Load(objectsender,EventArgse){DataTabledt=default(DataTable);dt=CreateDataTable();//设置图表的数据源Chart1.DataSource=dt;//设置图表Y轴对应项Chart1.Series[0].YValueMembers=Volume1;Chart1.Series[1].YValueMembers=Volume2;//设置图表X轴对应项Chart1.Series[0].XValueMember=Date;//绑定数据Chart1.DataBind();}privateDataTableCreateDataTable(){//CreateaDataTableasthedatasourceoftheChartcontrolDataTabledt=newDataTable();//AddthreecolumnstotheDataTabledt.Columns.Add(Date);dt.Columns.Add(Volume1);dt.Columns.Add(Volume2);DataRowdr;//Addrowstothetablewhichcontainssomerandomdatafordemonstrationdr=dt.NewRow();dr[Date]=Jan;dr[Volume1]=3731;dr[Volume2]=4101;dt.Rows.Add(dr);dr=dt.NewRow();dr[Date]=Feb;dr[Volume1]=6024;dr[Volume2]=4324;dt.Rows.Add(dr);dr=dt.NewRow();dr[Date]=Mar;dr[Volume1]=4935;dr[Volume2]=2935;dt.Rows.Add(dr);dr=dt.NewRow();dr[Date]=Apr;dr[Volume1]=4466;dr[Volume2]=5644;dt.Rows.Add(dr);dr=dt.NewRow();dr[Date]=May;dr[Volume1]=5117;dr[Volume2]=5671;dt.Rows.Add(dr);dr=dt.NewRow();dr[Date]=Jun;dr[Volume1]=3546;dr[Volume2]=4646;dt.Rows.Add(dr);returndt;}浏览页面:privatevoidshowChart(Chartchart,double[]value){string[]xValue={A,B,C,D};//设Θ?置?标括?签?double[]yValue=value;//获?取?要癮显?示?的?值μchart.BorderSkin.SkinStyle=BorderSkinStyle.Emboss;//设Θ?置?图?表括?边?框ò为a浮?雕?效§果?chart.BorderlineDashStyle=ChartDashStyle.Solid;//设Θ?置?图?表括?边?框ò为a实害?线?chart.BorderlineWidth=1;//设Θ?置?图?表括?边?框ò的?宽í度èchart.Series[0].ChartType=SeriesChartType.Pie;//设Θ?置?图?表括?类え?型í为a饼纘图?chart.Series[0].CustomProperties=DoughnutRadius=25,PieDrawingStyle=Concave,CollectedLabel=Other,MinimumRelative+PieSize=20;//设Θ?置?饼纘图?的?参?数簓chart.Series[0].Points.DataBindXY(xValue,yValue);//将?数簓据Y绑悒?定¨到?图?表括?}double[]value={30,40,50,60};//要癮显?示?的?数簓据YshowChart(this.chart1,value);//显?示?图?表括?

1 / 7
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功