飞扬范文网
当前位置 首页 >述职报告 >

在asp.net中创建统计图的实现

发布时间:2022-03-08 15:15:33 浏览数:

(神华准能公司科技信息处,内蒙古 薛家湾 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; }

相关热词搜索: 创建 统计图 asp net