重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
大牛,你写会了教教我吧。。。。
目前成都创新互联已为上千的企业提供了网站建设、域名、网络空间、网站托管、服务器租用、企业网站设计、苏州网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
别人有成熟的东西为何要自己写?
况且,这些组件都是基于JS的,跟PHP木有关系
pChart是一个开源的图表生成库,主要涉及3个Class: pChart.class , pData.class , pCache.class ,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看p
pChart是一个开源的图表生成库,主要涉及3个Class:, , ,可生成20多种简单或复杂的图表,支持PNG,JPG,GIF通用图片格式。数据源可以来自于Database,CSV,当然也可以手写。使用该程序PHP需要开启GD服务,先来看看pChart的工作流程:

主要分为三步:
* 读取用于生成图表数据(数据库、文件)
* 设计图表样式(圆角、底色等)
* 制作标签、题目、图例并生成图表
下面看一个简单的柱状图表:

代码如下:
?php // Standard inclusionsinclude("pChart/pData.class");
include("pChart/pChart.class");
// Dataset definition $DataSet = newpData;
//图表数据 $DataSet-AddPoint(array(1,4,-3,2,-3,3,2,1,0,7,4),"Serie1");
$DataSet-AddPoint(array(3,3,-4,1,-2,2,1,0,-1,6,3),"Serie2");
$DataSet-AddPoint(array(4,1,2,-1,-4,-2,3,2,1,2,2),"Serie3");
$DataSet-AddAllSeries();
$DataSet-SetAbsciseLabelSerie();
//数据图例 $DataSet-SetSerieName("Microsoft","Serie1");
$DataSet-SetSerieName("IBM","Serie2");
$DataSet-SetSerieName("Google","Serie3");
// Initialise the graph $Test = newpChart(700,230);
//设置图表尺寸、样式 $Test-setFontProperties("Fonts/tahoma.ttf",8);
$Test-setGraphArea(50,30,680,200);
$Test-drawFilledRoundedRectangle(7,7,693,223,5,240,240,240);
$Test-drawRoundedRectangle(5,5,695,225,5,230,230,230);
$Test-drawGraphArea(255,255,255,TRUE);
$Test-drawScale($DataSet-GetData(),$DataSet-GetDataDescription(),SCALE_NORMAL,150,150,150,TRUE,0,2,TRUE);
$Test-drawGrid(4,TRUE,230,230,230,50);
// Draw the 0 line $Test-setFontProperties("Fonts/MankSans.ttf",6);
$Test-drawTreshold(0,143,55,72,TRUE,TRUE);
// Draw the bar graph //柱状图要使用drawBarGraph() $Test-drawBarGraph($DataSet-GetData(),$DataSet-GetDataDescription(),TRUE,80);
// Finish the graph //制作图例、标题、字体等属性 $Test-setFontProperties("Fonts/MankSans.ttf",10);
$Test-drawLegend(596,150,$DataSet-GetDataDescription(),255,255,255);
$Test-setFontProperties("Fonts/MankSans.ttf",10);
$Test-drawTitle(50,22,"Example",50,50,50,585);
//生成图表 $imageFile ="example12.png";
$Test-Render($imageFile);
echo 'img src="'.$imageFile.'"'
其实差不多,js图标主要在前端渲染,php做图标主要依托图标内库如pchart,pdata等做后端运算;应该说根据不同的业务需求吧;js操作更简单,前端JS,后端数据接口,可分离,php就只能后端程序员做了;再就是php图标虽支持很多图标但是部分特别复杂的类型还是没能开放
- PHP进阶讨论 系统需求:类似统计代码的记录PV值和客户端信息。已有的想法:1:MYSQL建立一个 临时表和存储表,记录到临时表,定时插入存储表。2:同1,但使用MYSQL内存表,优点速度高很多,缺点就是意外当机会丢失当前内存表的数据。3:I/O操作 写文本, 同时建立多个文本进行操作,自己只是认为不合适,优点和缺点说不明白!4:分析apache日志,这个感觉很有局限性。请教各位phper 这种情况下还有更好的处理方式吗?------------------------------------------------------------------------生成图表:统计图表,查看了已有的一些成熟代码,都动则几MB 感觉系统很臃肿。自己写的话复杂功能比较难应付。主要是饼图和柱图
对于数据库来说,数据量的大小不是什么障碍,关键是动态地生成图表.
生成图表的例子到处都是,在运行生成图表的程序之前,你的PHP需要一个GD库
琢磨了一下,运用之前修改dotproject中文乱码问题的经验,改了改Libchart,现在成功的支持中文字体了。 做法很简单: 1、自己写的使用Libchart库生成图表的php文件以utf-8编码保存 2、找几个中文字体库,比如华文行楷、宋体等等,复制到libchart\fonts目录下 3、修改libchart\classes目录下的text.php文件第47、48行$this-fontCondensed = dirname(__FILE__) . “/../fonts/DejaVuSansCondensed.ttf”; $this-fontCondensedBold = dirname(__FILE__) . “/../fonts/DejaVuSansCondensed-Bold.ttf”;改为$this-fontCondensed = dirname(__FILE__) . “/../fonts/你找来的中文字体”; $this-fontCondensedBold = dirname(__FILE__) . “/../fonts/你找来的中文字体”; now,图表里现在显示中文了。