Web环境下统计图表的一种生成方法.docx

上传人:b****6 文档编号:5076101 上传时间:2022-12-13 格式:DOCX 页数:8 大小:17.85KB
下载 相关 举报
Web环境下统计图表的一种生成方法.docx_第1页
第1页 / 共8页
Web环境下统计图表的一种生成方法.docx_第2页
第2页 / 共8页
Web环境下统计图表的一种生成方法.docx_第3页
第3页 / 共8页
Web环境下统计图表的一种生成方法.docx_第4页
第4页 / 共8页
Web环境下统计图表的一种生成方法.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

Web环境下统计图表的一种生成方法.docx

《Web环境下统计图表的一种生成方法.docx》由会员分享,可在线阅读,更多相关《Web环境下统计图表的一种生成方法.docx(8页珍藏版)》请在冰豆网上搜索。

Web环境下统计图表的一种生成方法.docx

Web环境下统计图表的一种生成方法

Web环境下统计图表的一种生成方法

【摘要】  利用Windows的图形设备接口GDI+提供的图形工具库(即System.Drawing名称空间的GDI+),将程序代码分布在Web服务器端,用户通过浏览器访问相应的网页并运行服务器端代码,动态地生成图表,然后以GIF或JPG图形的形式发送给客户端提交给用户。

最后给出一个生成直条图的例子及程序代码。

【关键词】Web;ASP.NET;GDI+;统计图表;B/S模式

  1引言

  统计图表是医学统计学中常用的一种数据表示形式,目前有很多生成统计图表的软件,例如MicrosoftGraphic、DeltaGraph、MicrosoftExcel等软件都可以很方便的生成各种统计图表,但这些软件只能应用在单机Windows桌面应用程序中。

WEB环境下,这个问题就变得要复杂一些了。

  2系统运行模式

  由于在Web环境下,目前广泛流行的应用系统平台模式大体上分为两种:

客户机/服务器模式(Client/Server,简称C/S)和浏览器/服务器模式(Browser/Server,简称B/S)。

不管使用哪一种模式,数据一般都存储在服务器上,客户端或浏览器要从服务器中提取数据,然后进行加工处理,最后把分析处理的结果显示到屏幕上。

  对于C/S模式,应用程序逻辑通常分布在客户和服务器两端,客户端发出数据资源访问请求,服务器端将结果返回客户端。

但C/S结构存在着很多体系结构上的问题,一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便,使客户端的设置复杂化。

另外,非MSWindows/IE的客户端一般难以运行,不能跨平台。

  而B/S模式的客户端只需要一个标准的浏览器,可以在任何地方进行操作而不用安装任何专门的客户端软件,客户端零维护,具有更大的灵活性。

无论是决策层还是操作层的人员都无需培训,就可以直接使用。

其次当程序功能发生变化时,无需再为每个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修改。

这样不但可以提高运作效率,还省去了维护时协调工作的不少麻烦。

因此现在的WEB应用程序开发也以B/S模式较为流行。

  本研究采用B/S模式,利用Web服务器上运行的服务器端代码,动态地生成图表,然后以GIF或JPG图形的形式发送给客户端。

许多网站大量地运用了这一技术。

注意:

利用这种技术生成的图形不是把图形保存在Web服务器上,而是用户发出一个http请求时动态从服务器端运行程序代码生成。

  3图表生成方法

  在ASP.NETWeb应用程序中,我们可以利用ASP.NET内建的图形库GDI+(GraphicDeviceInterface+)绘制图表。

GDI+是GDI(WindowsXP之前版本提供的图形设备接口)的后续版本。

它是一种应用程序编程接口(API),负责在屏幕和打印机上显示信息,GDI+在命名空间System.Drawing中,我们可以引入该命名空间然后调用相应的作图方法生成图形。

这种方法是一种较底层的方法,在ASP.NET中,利用GDI+可以创建简单的直方图、饼图和线性图,不适于创建复杂的图形。

  在System.Drawing命名空间中包含了创建、编辑图像的所有类。

创建图像时,主要使用Bitmap类和Graphics类。

为了便于理解,可以把Bitmap类想象成画板,Graphics类想象成画笔。

Bitmap类主要用于创建画板以及图象创建完成后图像的保存,Graphics类主要用来绘制图像、图形和线条等。

  4一个例子

  下面就以画直条图为例来说明利用这种方法绘制统计图的方法,其他统计图的绘制方法类似。

  例:

将某市某区某年几种主要疾病死亡专率(资料见下表)绘制成直条图。

  主要死因死亡人数死亡专率(1/10万)脑血管病806200恶性肿瘤458114心脏病35889老慢支25563肺结核17744

  按照上面所提及的方法,在ASP.NET环境下可以通过如下步骤绘制直条图,这里的开发工具选用的是VisualStudio.Net2003企业版,采用的开发语言是C#。

  ①启动VisualStudio.Net2003

  ②选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框

  ③将【项目类型】设置为【VisualC#项目】

  ④将【模板】设置为【ASP.NETWeb应用程序】

  ⑤在【位置】的文本框中输入"http:

//localhost/tjt",然后单击【确定】按钮,这样VisualStudio.Net就会在当前项目文件所在目录中建立一个名称为"tjt"文件夹,里面存放的是此项目的项目文件,项目中的其他文件存放的位置是计算机Internet信息服务的默认的Web站点所在的目录中新建的一个名称为"tjt"的文件夹中。

具体过程如图1所示。

  图1新建一个ASP.NET项目对话框(略)

  ⑥在项目中添加一个Web窗体chart1.aspx,在此窗体中拖入一个Web窗体控件命令按钮,然后切换到该窗体的程序代码编辑窗口,即chart1.aspx.cs文件的编辑窗口。

  ⑦在chart1.aspx.cs文件首部,用下列代码替换chart1.aspx.cs中导入命名空间的代码:

  //以下命令导入命名空间

  usingSystem;

  usingSystem.Collections;

  usingSystem.ComponentModel;

  usingSystem.Data;

  usingSystem.Drawing;//导入GDI+命名空间

  usingSystem.Drawing.Imaging;

  usingSystem.Web;

  usingSystem.Web.SessionState;

  usingSystem.Web.UI;

  usingSystem.Web.UI.WebControls;

  usingSystem.Web.UI.HtmlControls;

  namespacetjt

  {

  ///

  ///gdili1的摘要说明。

  publicclasschart1:

System.Web.UI.Page

  {

  protectedSystem.Web.UI.WebControls.ButtonButton1;

  privatevoidButton1_Click(objectsender,System.EventArgse)

  {

  constintwidth=600,height=400;

  BitmapmyPalette=newBitmap(width,height);//创建600*400的画板

  //创建Graphics类的实例,以便在画板上绘制图像、图形和线条。

  GraphicsmyGraphics=Graphics.FromImage(myPalette);

  //绘制白色背景

  myGraphics.FillRectangle(newSolidBrush(Color.White),0,0,width,height);

  //设定X轴显示数据

  string[]DataName={"NXGB","EXZL","XZB","LMZ","FJH"};//分别代表脑血管病、恶性肿瘤、心脏病、老慢支、肺结核

  int[]Data={200,114,89,63,44};

  //设定显示颜色

  Color[]myColors={

  Color.Blue,

  Color.Red,

  Color.Yellow,

  Color.Purple,

  Color.Orange,

  Color.Brown

  };

  myGraphics.DrawLine(newPen(Color.Black),0,305,400,305);//绘制X轴

  myGraphics.DrawLine(newPen(Color.Black),0,0,0,305);//绘制Y轴

  //绘制直条图

  for(inti=0;i

  {

  

  //填充直条图

  myGraphics.FillRectangle(newSolidBrush(myColors[i]),(i*40)+30,300-Data[i],20,Data[i]+5);

  //绘制直条图边界

  myGraphics.DrawRectangle(newPen(Color.Black),(i*40)+30,300-Data[i],20,Data[i]+5);

  //绘制直条图上方数据

  myGraphics.DrawString(Data[i].ToString(),newFont("宋体",9),Brushes.Black,newPointF((i*40)+30,300-Data[i]-20));

  //绘制直条图下标

  myGraphics.DrawString(DataName[i],newFont("宋体",9),Brushes.Black,newPointF((i*40)+30,320));

  }

  //输出图像

  myPalette.Save(Response.OutputStream,ImageFormat.Jpeg);

  //清除所用绘图对象

  myGraphics.Dispose();

  myPalette.Dispose();

  }

   

  }

  

  }

  上面的步骤完成之后,对程序进行编译打包,然后发布到网上,用户便可通过浏览器进行访问了,具体说就是在相应网址下打开上面我们设计的chart1.aspx页面,点击按钮即可生成我们的直条图。

  实际生活中,我们需要动态生成统计图。

对于这种情况,统计图要表示的数据是存储在数据库服务器中的,并且会在网上动态更新,这时我们可以通过访问数据库服务器得到数据,然后利用上面的方法生成统计图,这样生成的统计图也是动态的,具体做法笔者不再赘述。

  以上程序在VisualS2003环境下调试通过,并发布到了网上经过测试。

【参考文献】

  1杨树勤,主编.卫生统计学.第3版.人民卫生出版社,1993.

  2刘斌,张军,编著.ASP.NET+SQLServer动态网站开发案例精选.清华大学出版社,2005.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1