- 浏览: 236116 次
- 性别:
- 来自: ph
文章分类
最新评论
-
zrj_software:
说了等于没说,LZ能否把DLL代码给我研究下啊30729375 ...
如何在Delphi中调用.Net编写的DLL中的函数 -
reyesyang:
正在查找ruby单例模式相关资料,很有帮助,谢谢。
ruby中的单例模式 -
chaochao_pc:
您好,您的通讯工具能传输文件吗? 我在上边好像没找到!!! ...
Silverlight Socket 实现收发信息 -
huaxia524151:
谢谢,解决问题。return self.name.encode ...
Django笔记5(管理站点) -
yahon:
在flash中如何获取呢?
Flash+html--网页向FLASH传递参数
首先我们要介绍一下我们在这篇文章中使用的PHP 类Libchart ,这是个外国人(非中国国籍的地球人,被称为外国人!)写的免费类!使用起来非常简单。看出来了吧,我们是要用一个外国人写的PHP 创建柱状图,饼状图,和线性图的类,来工作的。如果你要学习这个类的写法,你也可以把这个类下载下来看看外国人的思路!
我们开始吧,首先下载这个类 点击此处:下载Libchart ,解压缩!
第一个用例,我们来创建一个纵向的柱状图:
首先我们包含这个类文件到我们的程序中,并且实例化这个类,程序如下:
requir_once( './Libchart/classes/libchart.php' ) ;
$chart = new VerticalBarChart( 500 , 250 ) ; // 参数表示需要创建的图像的宽和高
$dataSet = new XYDataSet() ; // 实例化一个 XY 轴数据对象
// 为这个对象增加四组数据集合, Point 对象的第一个参数表示 X 轴坐标,第二个表示 Y 轴坐标
$dataSet -> addPoint ( new Point( "Jan 2005" , 273 )) ;
$dataSet -> addPoint ( new Point( "Feb 2005" , 321 )) ;
$dataSet -> addPoint ( new Point( "March 2005" , 442 )) ;
$dataSet -> addPoint ( new Point( "April 2005" , 711 )) ;
// 把这个数据集合传递给图形对象
$chart -> setDataSet ( $dataSet ) ;
// 设置图形的标题,并把它作为一个 png 文件渲染
$chart -> setTitle ( "Monthly usage for www.example.com" ) ;
$chart -> render ( "generated/demo1.png" ) ; // 这里需要一个路径和文件名称
就这么简单一个像下图一样美丽的柱状图就出来了。
PHP 柱状图
PHP 创建一个饼状图的过程和上边说的柱状图大同小异 ,具体实例代码如下:
$chart = new PieChart( 500 , 250 ) ;
$dataSet = new XYDataSet() ;
$dataSet -> addPoint ( new Point( "Mozilla Firefox (80)" , 80 )) ;
$dataSet -> addPoint ( new Point( "Konqueror (75)" , 75 )) ;
$dataSet -> addPoint ( new Point( "Other (50)" , 50 )) ;
$chart -> setDataSet ( $dataSet ) ;
$chart -> setTitle ( "User agents for www.example.com" ) ;
$chart -> render ( "generated/demo2.png" ) ;
创建饼状图 就一点值得说一下就是Point 的参数,第一个参数是占用比例的名称,第二个是数据,并不存在XY 坐标;图如下:
饼状图
创建一个线性图, 这个有点和上边两个不同,就是数据集合的不同。我们也看到了XYDataSet 这个数据集合, 另外在这个类中还有一个数据集合XYSeriesDataSet() ,这个其实是一个比XYDataSet 更大的集合而已,他的元素就是 XYDataSet ,看一下例子和这段创建PHP 线性图的程序,你一定就明白了:
include "../libchart/classes/libchart.php" ;
$chart = new LineChart( 500 , 250 ) ;
$serie1 = new XYDataSet() ;
$serie1 -> addPoint ( new Point( "06-01" , 273 )) ;
$serie1 -> addPoint ( new Point( "06-02" , 421 )) ;
$serie1 -> addPoint ( new Point( "06-03" , 642 )) ;
$serie1 -> addPoint ( new Point( "06-04" , 799 )) ;
$serie1 -> addPoint ( new Point( "06-05" , 1009 )) ;
$serie1 -> addPoint ( new Point( "06-06" , 1106 )) ;
$serie2 = new XYDataSet() ;
$serie2 -> addPoint ( new Point( "06-01" , 280 )) ;
$serie2 -> addPoint ( new Point( "06-02" , 300 )) ;
$serie2 -> addPoint ( new Point( "06-03" , 212 )) ;
$serie2 -> addPoint ( new Point( "06-04" , 542 )) ;
$serie2 -> addPoint ( new Point( "06-05" , 600 )) ;
$serie2 -> addPoint ( new Point( "06-06" , 850 )) ;
// 这些和前面的两个看起来没有什么区别,关键在下边这一段,需要自己理解一下啦:
$dataSet = new XYSeriesDataSet() ;
$dataSet -> addSerie ( "Product 1" , $serie1 ) ;
$dataSet -> addSerie ( "Product 2" , $serie2 ) ;
$chart -> setDataSet ( $dataSet ) ;
$chart -> setTitle ( "Sales for 2006" ) ;
$chart -> render ( "generated/demo3.png" ) ;
画出这样一个图来:
线性图
然后,把数据交给图形实例,然后渲染图形,和创建柱状图和线性图是一样的。其实国外还有好多创建柱状图和饼状图的类程序,有的还相当的NB ,例如结合flash 的,结合web css 的不一而足,这个用起来相对简单一点,大家尽管拿去用好了!
转载请注明来源 : 柳城博客
本文详细出处参考: http://www.liucheng.name/?p=404
附: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,图表里现在显示中文了!!!
评论
或自己增加一个方法,在LineChart等图表类中把$this->computeAxis()换成自己的方法,这种方式破环了OOP的抽象特性,不是很好。若非要这样做,请使用更强大的开源pchart或利用COM组件的teeChart这两个。
怎么人为的修改呢
发表评论
-
客户端页面字符集对session的影响
2011-05-23 12:42 933session是使用在服 ... -
PHP生成Flash动画实例
2010-10-19 17:25 973使用 Ming 库动态构 ... -
PHP生成图表pChart
2010-07-21 12:09 1185pChart是一个开源的图表生成库,主要涉及3个Class:p ... -
用php读取和编写xml dom(使用 DOM 库、SAX 解析器和正则表达式)
2010-07-15 14:00 1044有许多技术可用于用 PHP 读取和编写 XML。本文提供了三种 ... -
php引号转义及表单储值问题
2010-07-07 16:10 1598转载自 merry_pjx 最终编辑 merry_pjx ... -
php heredoc使用方法小结
2010-06-09 12:10 5369Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详 ... -
用PHPMailer发送邮件
2010-06-09 10:56 2187这是用开源项目PHPMailer ... -
Windows7下IIS配置PHP
2009-10-26 16:29 7385微软和Zend合作以后,针对IIS推出了专门的FastCGI支 ... -
php中的页面执行时间计算
2009-08-20 11:49 1119可以使用microtime函数来实现,这个函数返回当前 ... -
xajax中文手册
2009-08-14 17:44 967* 什么是xajax? * xajax如何工作 ... -
php的日期比较
2009-08-14 14:27 2264php里是没有内置的日期比较函数,但可以转换成统一格式后再进行 ... -
CakePHP你必须知道的21条技巧
2009-08-06 15:01 1211这篇文章可以说是CakePHP ... -
字符集编码的转换
2009-08-06 14:11 951在编程的时候,往往需要字符集间编码的转换,这就需要 ... -
php获取当前日期时间
2009-08-05 13:10 5027函数 date ( string format [, in ... -
关于PHP Pear 安装及使用
2009-07-16 11:53 1914-------------- 安装pe ... -
利用PHP和PEAR动态创建和编辑TAR文档
2009-07-16 11:34 1116如果你曾为你的UNIX系统下载过widget,那么你肯定遇到过 ... -
PHP 5 数据对象 (PDO) 抽象层与 Oracle
2009-06-20 12:55 1057一名新 PHP 数据对象 (PDO ... -
ArrayAccess接口介绍
2009-06-20 12:51 850在 PHP5 中多了一系列新接口。在 HaoHappy 翻译的 ...
相关推荐
js 柱状图 饼状图 等js 柱状图 饼状图 等js 柱状图 饼状图 等js 柱状图 饼状图 等js 柱状图 饼状图 等
使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js绘制3d图表(柱状图,饼状图,环状图,面积图等).zip使用three.js...
柱状图转换成饼状图
个人整理的php生成柱状图、3D饼状图和折线图,非常好用!在此与大家分享
包含各种漂亮的立体柱状图,饼状图,折线图和区域图,含3D效果,并且包含源码,含有各种特效,超炫咯
用mschart画柱状图、饼状图、折线图的实例,代码做部分调整即可用于自己的程序。
自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、饼状图的类自绘折线图、柱状图、...
通过几天的研究终于可以用arcgis for flex 在地图上显示柱状图 饼状图和折线图
FLEX画图之各种柱状图饼状图画法
WPF柱状图饼状图折线图,功能很实用,举一反三。
jquery 实现的一款报表,可以在页面中展示,包括常用的饼状图、柱状图等。jsp、asp等都可以使用,在页面中展示生成统计图等,非常实用,使用也很简单,看一眼估计就懂
具体的java代码 实现 柱状图 折线图 饼状图
柱状图 饼状图 java 全部代码 可以将数据库数据取出 根据数据情况生成图形
java制作jfreechart柱状图 饼状图 折线图 随机数字做的数据源 下载导入即可运行 内含jar包
JFreeChart 饼状图 柱状图 柱状图 堆积柱状图 折线图 这个是我特地开发的一个用JFreeChart开发的用来画图的项目,已经开发成形了各种项目的各种需求的项目,并且自己可以拓展,根据需求修改代码,完成项目的需要。 ...
asp.net 统计 柱状图饼状图,,可以绘制图表
解决highcharts多级下钻问题,下钻过程中使用了多种图例,自带上钻功能 c#,java使用方法一样,demo中使用c#方法实现 vs打开直接可以运行无需连接数据库 大数据可使用异步下钻...
js饼状图+柱状图+曲线图
java的JFreeChart编写柱状图和饼状图及3D饼状图方法
Android图标库demo,柱状图,饼状图等,直接能够运行,注意编译版本号