欢迎来到天天文库
浏览记录
ID:6057932
大小:27.50 KB
页数:5页
时间:2018-01-01
《jpgraph在公众气象服务产品展示中应用》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、JpGraph在公众气象服务产品展示中应用 摘要:结合气象数据,通过研究JpGraph在LAMP架构网站下的绘图模板及绘图函数调用,方便快捷地实现了折线图、离散点图、k线图、柱状图、饼状图、风玫瑰图等公众气象服务产品的生成。这有助于程序员更快更好地实现气象服务产品图形化部署,使公众获得更为直观、形象且易于接受的气象服务产品,为进一步分析并利用气象数据提供了更加有效的方式,对丰富气象网站公共服务产品的种类起到了较大的促进作用。关键词:公众气象服务产品;LAMP网站架构;JpGraph中图分类号:TP319文献
2、标识码:A文章编号文章编号:1672-7800(2013)012-0082-02作者简介:李剑莉(1981-),女,重庆市气象服务中心工程师,研究方向为LAMP技术、软件编程;刘甜甜(1981-),女,硕士,重庆市气象服务中心工程师,研究方向为气象服务与应用气象;夏佰成(1978-),男,硕士,重庆市气象服务中心高级工程师,研究方向为地图学与地理信息系统。0引言5随着经济的快速发展与人民生活水平的不断提高,网络覆盖率大幅提升,网络技术迅猛发展,公众对网络气象服务产品的关注达到了空前高度。相对于单纯的文字、表格
3、等表现形式,运用不同类型的图形图像表现不同时段、不同地点的天气气候特征,更为通俗和直观,易于被公众接受。作为当下Web开发中最流行的选择,重庆市气象局面向公众服务的重庆市气象局网、重庆兴农网与众多知名网站(Yahoo、Facebook、sina)一样采用LAMP架构搭建。但是LAMP架构下,用PHP作图时没有一个统一的chart类来实现图表的快速开发,使得网站想要提供丰富的图形化公共气象服务产品相对比较困难。对此,笔者使用开源软件JpGraph来实现LAMP下各类图表的开发。JpGraph是使用PHP5语言创
4、建的一个面向对象的图形绘制库,可以在任何PHP脚本中使用(包括CGI/APXS/CLI等),也可以在大型Web开发中当作图形预处理的一部分,提供两种图片生成方式,在线图片和离线图片。JpGraph是基于GD的图形生成库,相比传统用于绘图的GD库,JpGraph使用便捷,大大简化了PHP创建动态图形的繁琐操作,提高了工作效率,同时生成的网页格式图片质量更好;与svg图形技术相比,JpGraph的图片不用下载插件就可显示,无浏览器版本要求,更适合公众使用。1JpGraph应用技术介绍5JpGraph能根据气象数据
5、提供多种多样的图形产品,如折线图、离散点图、k线图、柱状图、饼状图、风玫瑰图、甘特图等。目前,JpGraph提供了近三百种各式统计图使用样板,用户还可以根据需要自行设计添加。1.1JpGraph库图形创建思路及常用要素创建思路:首先引用JpGraph类库和需要绘制图形的图形模型文件;其次创建画布,设定图画大小,留出边界距离;然后导入绘图数组,在画布上增减各类要素,设置显示模式;最后输出到浏览器或者保存为图片文件。$pic_width为画布长,$pic_height为画布宽,$dataT为标题名,$Backgr
6、oundImage为背景图片名,$datay为绘图数组,$datax为x轴坐标数组,$data_url为链接网址数组,$data_txt为鼠标动作显示内容数组。创建画布:$graph=newGraph($pic_width,$pic_height,’auto’);标题:$graph->title->Set($dataT);背景:$graph->SetBackgroundImage($BackgroundImage,BGIMG_FILLPLOT);Y轴:$graph->yaxis->SetTickSide(SI
7、DE_LEFT);X轴:$graph->xaxis->SetTickLabels($datax);柱状图:$Bplot=newBarPlot($datay);折线图:$Lfirst=newLinePlot($datay);离散点图:$sp=newScatterPlot($datay,$datax);K线图:$k1=newStockPlot($datay);5饼状图:$Pie1=newPiePlot3d($datay);根据基本的绘图思路,开始绘制各类图表,函数说明参见JpGraph函数文档,地址http://
8、jpgraph.net/download/manuals/classref/index.html,以下例子中仅给出绘制图形程序的关键部分。1.2离散点图开发实例mark->SetType(MARK_FILLEDCIRCLE);$Sc1->mark->SetCallbackYX(”FCallback”);$Sc1->value->Show();$Sc1->value->SetFormat(’%d’);
此文档下载收益归作者所有