




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web环境下统计图表的一种生成方法【摘要】 利用Windows的图形设备接口GDI+提供的图形工具库(即System.Drawing名称空间的GDI+),将程序代码分布在Web服务器端,用户通过浏览器访问相应的网页并运行服务器端代码,动态地生成图表,然后以GIF或JPG图形的形式发送给客户端提交给用户。最后给出一个生成直条图的例子及程序代码。 【关键词】 Web; ASP.NET; GDI+; 统计图表; B/S模式1 引言 统计图表是医学统计学中常用的一种数据表示形式, 目前有很多生成统计图表的软件,例如Microsoft Graphic、DeltaGraph、Microsoft Excel 等软件都可以很方便的生成各种统计图表,但这些软件只能应用在单机Windows桌面应用程序中。WEB环境下,这个问题就变得要复杂一些了。2 系统运行模式 由于在Web环境下,目前广泛流行的应用系统平台模式大体上分为两种:客户机/服务器模式(Client/Server,简称C/S)和浏览器/服务器模式(Browser/Server,简称B/S)。不管使用哪一种模式,数据一般都存储在服务器上,客户端或浏览器要从服务器中提取数据,然后进行加工处理,最后把分析处理的结果显示到屏幕上。 对于C/S模式,应用程序逻辑通常分布在客户和服务器两端, 客户端发出数据资源访问请求,服务器端将结果返回客户端。但C/S结构存在着很多体系结构上的问题,一旦应用的需求发生变化,客户端和服务器端的应用程序都需要进行修改,给应用维护和升级带来了极大的不便,使客户端的设置复杂化。另外,非MS Windows/IE的客户端一般难以运行,不能跨平台。 而B/S模式的客户端只需要一个标准的浏览器,可以在任何地方进行操作而不用安装任何专门的客户端软件,客户端零维护,具有更大的灵活性。无论是决策层还是操作层的人员都无需培训,就可以直接使用。其次当程序功能发生变化时,无需再为每个现有的客户应用程序升级,而只需对Web服务器上的服务处理程序进行修改。这样不但可以提高运作效率,还省去了维护时协调工作的不少麻烦。因此现在的WEB应用程序开发也以B/S模式较为流行。 本研究采用B/S模式,利用Web服务器上运行的服务器端代码,动态地生成图表,然后以GIF或JPG图形的形式发送给客户端。许多网站大量地运用了这一技术。注意:利用这种技术生成的图形不是把图形保存在Web服务器上,而是用户发出一个http请求时动态从服务器端运行程序代码生成。3 图表生成方法 在ASP.NET Web应用程序中,我们可以利用ASP.NET内建的图形库GDI+(Graphic Device Interface+)绘制图表。GDI+是 GDI(Windows XP之前版本提供的图形设备接口)的后续版本。它是一种应用程序编程接口(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环境下可以通过如下步骤绘制直条图,这里的开发工具选用的是Visual Studio.Net2003企业版,采用的开发语言是C。 启动Visual Studio.Net2003 选择菜单【文件】|【新建】|【项目】后,弹出【新建项目】对话框 将【项目类型】设置为【Visual C项目】 将【模板】设置为【ASP.NET Web 应用程序】 在【位置】的文本框中输入http:/localhost/tjt,然后单击【确定】按钮,这样Visual Studio.Net就会在当前项目文件所在目录中建立一个名称为tjt文件夹,里面存放的是此项目的项目文件,项目中的其他文件存放的位置是计算机Internet信息服务的默认的Web站点所在的目录中新建的一个名称为tjt的文件夹中。具体过程如图1所示。图1 新建一个ASP.NET项目对话框(略) 在项目中添加一个Web窗体chart1.aspx,在此窗体中拖入一个Web窗体控件命令按钮,然后切换到该窗体的程序代码编辑窗口,即chart1.aspx.cs文件的编辑窗口。 在chart1.aspx.cs文件首部,用下列代码替换chart1.aspx.cs中导入命名空间的代码: /以下命令导入命名空间 using System; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; /导入GDI+命名空间 using System.Drawing.Imaging; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; namespace tjt / / gdili1 的摘要说明。 public class chart1 : System.Web.UI.Page protected System.Web.UI.WebControls.Button Button1; private void Button1_Click(object sender, System.EventArgs e) const int width = 600, height = 400; Bitmap myPalette = new Bitmap(width,height);/创建600*400的画板 /创建Graphics类的实例,以便在画板上绘制图像、图形和线条。 Graphics myGraphics = Graphics.FromImage(myPalette); / 绘制白色背景 myGraphics.FillRectangle(new SolidBrush(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(new Pen(Color.Black),0,305,400,305);/绘制X轴 myGraphics.DrawLine(new Pen(Color.Black),0,0,0,305);/绘制Y轴 /绘制直条图 for(int i = 0;i /填充直条图 myGraphics.FillRectangle(new SolidBrush(myColorsi),(i*40)+30,300 - Datai,20,Datai+5); /绘制直条图边界 myGraphics.DrawRectangle(new Pen(Color.Black),(i*40)+30,300 - Datai,20,Datai+5); /绘制直条图上方数据 myGraphics.DrawString(Datai.ToString(), new Font(宋体, 9), Brushes.Black, new PointF(i*40)+30,300-Datai-20); /绘制直条图下标 myGraphics.DrawString(DataNamei, new Font(宋体, 9), Brushes.Black, new PointF(i*40)+30,320); /输出图像 myPalette.Save(Response.OutputStream, ImageFormat.Jpeg); / 清除所用绘图对象 myGraphics.Dispose(); myPalette.Dispose(); 上面的步骤完成之后,对程序进行编译打包,然后发布到网上,用户便可通过浏览器进行访问了,具体说就是在相应网址下打开上面我们设计的chart1.aspx页面,点击按钮即可生成我们的直条图。 实际生活中,我们需要动态生成统计图。对于这种情况,统计图要表示的数据是存储在数据库服务器中的,并且会在网上动态更新,这时我们
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 珠宝创意线下活动策划方案
- 生物科技企业创始人股权分割与转让专项合同
- 智能家居社区商铺租赁合同及转租智慧家居服务协议
- 离婚案件中夫妻共有保险合同分割与补偿合同
- 智能化社区物业运营与管理合作协议
- 物联网产业园区数据分析与决策支持方案
- 水库泄洪能力提升改造方案
- 二手房买卖合同范本:房屋抵押贷款及还款计划协议
- 王之伦:电信服务合同中的个人信息保护法律条款
- 股权变更及税务筹划的环保企业合同
- 电子工程师知识培训课件
- 浙江省中考科学说理题训练及答题技巧
- 兵团连队职工考试试题及答案解析
- 假如我变成了班主任课件
- 首尔之春影视解读
- 医院病区突然停电应急处置
- 2025年移动云考试题库
- 桥隧工程培训频课件
- 幼儿园教师防恐防暴安全知识培训
- 1.2位置 位移(教学课件) 高中物理教科版必修第一册
- (2025)未成年人保护法知识竞赛必刷题库附含参考答案
评论
0/150
提交评论