在asp.net中创建统计图的实现
(神华准能公司科技信息处,内蒙古 薛家湾 010300)
摘 要: 根据在一些数据统计、分析的程序中,把从数据源取到的数据用柱壮或饼状的统计图 表现出来,以达到一种更直观更形象的效果,文章以c#.net为例说明了如何在asp.net中实 现这样的功能。
关键词:asp.net技术;命名空间;图例
中图分类号:TP391.72 文献标识码:A 文章编 号:1007—6921(2008)13—0059—01
在GDI+基类的主要命名空间System.Drawing中,提供了Bitmap、Graphics类,其中Bitmap类 封装了GDI+位图,继承自image类,用于处理由像素数据定义的图像。
1 举例说明功能的实现
在实例中创建panelchart.aspx和chart.aspx页面,第一个页面用来显示创建的统计图,第 二个页面用来创建统计图,并以GIF图片的形式输出。
首先新建panelchart.aspx页面用来显示统计图,该页面的实现方法如下:
<TABLE id=“Table1”style=“WIDTH: 112px; HEIGHT: 160px”>
<TR><TD><IMG alt=“ ”src=“chart.aspx”></TD></TR>
<TR><TD align=“center”>创建图形范例</TD></TR></TABLE>
然后添加一个空白的“chart.aspx”页面用来生成统计图。
Chart.aspx页面的页面载入事件如下:
private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Graphics objGraphics;//建立画板对象
Bitmap objBitMap=new Bitmap(600,300);//建立位图对象
objGraphics=Graphics.FromImage(objBitMap);//根据位图对象建立画板对象
objGraphics.Clear(Color.White);//设置画板对象的背景色
int[] arrValues={0,0,0,0,0,0};//数据数组
arrValues[0]=50;arrValues[1]=70;arrValues[2]=90;
arrValues[3]=100;arrValues[4]=140;arrValues[5]=220;
string[] arrValueNames={“0”,“0”,“0”,“0”,“0”,“0”};
arrValueNames[0]=“一月”; arrValueNames[1]=“二月”;
arrValueNames[2]=“三月”; arrValueNames[3]=“四月”;
arrValueNames[4]=“五月”; arrValueNames[5]=“六月”;
objGraphics.DrawString(“上半年销售情况统计”,new Font(“宋体”,16),Bru shes.Black,new PointF(0,0));
PointF symbolLeg=new PointF(335,20); //创建图例文字
PointF descLeg=new PointF(360,16);
//画出图例。利用objGraphics 图形对象的3个方法画出图例
//fillrectangle()方法画出填充矩形,DrawRectangle()方法画出矩形的边框
//可以很方便根据不同的参数来画出图形
//画出个个月的标示图形
for(int i=0;i<arrValueNames.Length;i++)
{ objGraphics.FillRectangle(new SolidBrush(GetColor(i)),symbolLeg.X,symbolLeg .Y,20,10);
objGraphics.DrawRectangle(Pens.Black,symbolLeg.X,symbolLeg.Y,20,10);
objGraphics.DrawString(arrValueNames[i].ToString(),new Font("宋体 ",10),Brushes.Black,descLeg);
symbolLeg.Y+=15;descLeg.Y+=15; }
for(int j=0;j<arrValues.Length;j++)//画矩形图 { objGraph ics.FillRectangle(new SolidBrush(GetColor(j)),j*35+15,200-arrValues[j],20, arrValues[j]+5);
objGraphics.DrawRectangle(Pens.Black,(j*35)+15,200-arr Values[j],20,arrValues[j]+5); }
float sglCurrent Angle;
float sglTotal Angle=0;
for(int a=0;a<arrValues.Length-1;a++)
{sglTotalAngle+=arr Values
[a];}
for(int b=0;b<arrValues.Length;b++)
{ sglCurrentAngle=arrValues[b]/sglTotalAngle*360;
objGraphics.FillPie(new SolidBrush(GetColor(b)),220,95 ,100,100,sglTotalAngle,sglCurrentAngle);
sglTotalAngle+=sglCurrentAngle; }
objBitMap.Save(Response.OutputStream,ImageFormat.Gif);
在该代码中调用的getcolor方法用来根据传递的不同参数,返回不同的颜色对象
private Color GetColor(int itemIndex)
{ Color objColor=new Color();
switch(itemIndex)
{case 0: objColor=Color.Blue; break;
case 1: objColor=Color.Yellow; break;
case 2: objColor=Color.Red; break;
case 3: objColor=Color.Orange; break;
case 4: objColor=Color.Purple; break;
case 5: objColor=Color.Brown; break;
case 6:
default: objColor=Color.Blue; break;
} return objColor; }
热门文章:
- 2024年医院党支部书记抓党建...2025-01-12
- 综治中心主任个人述职报告2025-01-12
- 市法院院长述职报告2025-01-12
- “一把手”述职报告2025-01-12
- XX社区第三季度基层党建述职...2025-01-12
- 2024年国企副职领导工作述职报告2025-01-12
- 2024年度党支部工作总结暨党...2025-01-12
- 2024抓基层党建工作述职报告,(3)2025-01-12
- 述职工作报告2025-01-12
- (7篇)述职述廉述安报告材料...2025-01-11
相关文章:
- 二月文明创建活动通知2021-09-13
- 美丽乡村创建活动工作总结2021-09-14
- 创建文明处室活动的方案2021-09-15
- 创建五好活动2021-09-18
- 运输创建学习型企业演讲2021-09-18
- 创建学习型的队伍打造精品式校园2021-09-19
- 电信公司创建学习型企业材料2021-09-19
- 创建安全文明校园材料2021-09-19
- 在全省创建国家卫生城市*现场...2021-09-19
- ×乡二OO四安全文明创建活动...2021-09-20