`

使用libchart绘制图表

    博客分类:
  • php
阅读更多


头文件:

include("./class/libchart/classes/libchart.php");

由于绘制图表的需求不是很常见,因此,没有包含在class/class.php中。当需要绘制图表时,请单独包含此头文件。

在每个新的工程里,都有自己的LOGO,此LOGO将会出现在绘制出的图形左上角,因此,在使用前请更换./class/libchart/images/目录下的PoweredBy.png为工程LOGO,并保持文件名不变。


输出图形的方法有两种,一种是直接输出,一种是在服务器端生成。


直接输出的方法

直接输出的方法即使用PHP发送头方法,将PHP文件做为一个图像文件输出,显示在调用端。示例代码如下:

    <?php

    include("./class/class.php");

    include("./class/libchart/classes/libchart.php");


    header("Content-type: image/png"); // 将此页面显示为一个图片

    $chart = new PieChart(500, 300); // 设置饼图,图像大小为500x300


    $dataSet = new XYDataSet();

    $dataSet->addPoint(new Point("人力成本", 50));

    $dataSet->addPoint(new Point("设备损耗", 75));

    $dataSet->addPoint(new Point("场地租用", 30));

    $chart->setDataSet($dataSet);


    $chart->setTitle("工程预算比例图,单位-百万元"); // 设置图表标题,可以为中文

    $chart->render();

    ?>

这样绘制出的图形为一饼状图,如下图所示:
(图片已丢失)

这里同时要注意libchart的结构,只要更换$char的对象类型即可更换输出的图形类型,因此,其它图形如柱状图等可在此基础上推导。


在服务器端生成的方法为(以水平柱状图表为例):

    <?php

    include("./class/class.php");

    include("./class/libchart/classes/libchart.php");


    $chart = new HorizontalBarChart(600, 170);


    $dataSet = new XYDataSet();

    $dataSet->addPoint(new Point("/wiki/Im.php", 50));

    $dataSet->addPoint(new Point("/wiki/Web_Browser.php", 75));

    $dataSet->addPoint(new Point("/wiki/Web.php", 122));

    $chart->setDataSet($dataSet);

    $chart->getPlot()->setGraphPadding(new Padding(5, 30, 20, 140)); // 设置图标空白,分别为顶,右,下,左


    $chart->setTitle("www.example.com网站最多访问页面 "); // 图标标题

    $chart->render("generated/demo2.png"); // 输出图形,输出目录必须为可写,Linux上设置为777

    ?>


    <html>

    <head>

    <title>Libchart horizontal bars demonstration</title>

    <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-15" />

    </head>

    <body>

    <img alt="Horizontal bars chart" src="generated/demo2.png" style="border: 1px solid gray;"/>

    </body>

    </html>


输出图形如下图所示:
[php][libchar]使用libchart绘制图表 - Keiyi - Keiyis Redemption


这种方法一定要注意生成目录一定要可写,本例中将文件生成在./generated目录下,在linux系统下将此目录权限设置为777,在windows目录下将其设置为everyone可写。



Libchart几种常用图形设置:

图形样式


libchart类名

饼图


PieChart

水平柱状图


HorizontalBarChart

重直柱状图


VerticalBarChart

折线图


LineChart



这些类的默认的初始化时可以带参数,这个参数用来指定图形大小,也可以不带参数,这时以默认大小生成图形。


libchart可以绘制多维图形,方法是给$char对象添加多个序列,如下边是一个多维垂直柱状图示例:


    $chart = new VerticalBarChart();


    $serie1 = new XYDataSet();

    $serie1->addPoint(new Point("YT", 64));

    $serie1->addPoint(new Point("NT", 63));

    $serie1->addPoint(new Point("BC", 58));

    $serie1->addPoint(new Point("AB", 58));

    $serie1->addPoint(new Point("SK", 46));

    $serie2 = new XYDataSet();

    $serie2->addPoint(new Point("YT", 61));

    $serie2->addPoint(new Point("NT", 60));

    $serie2->addPoint(new Point("BC", 56));

    $serie2->addPoint(new Point("AB", 57));

    $serie2->addPoint(new Point("SK", 52));

    $dataSet = new XYSeriesDataSet();

    $dataSet->addSerie("1990", $serie1);

    $dataSet->addSerie("1995", $serie2);

    $chart->setDataSet($dataSet);

    $chart->getPlot()->setGraphCaptionRatio(0.65);


    $chart->setTitle("Average family income (k$)");

    $chart->render("generated/demo2.png");


添加多个序列的方法为,使用XYSeriesDataSet类下的addSerie方法进行添加,添加的对象为一个XYDataSet类对象。其它图形方法与之类似。
分享到:
评论

相关推荐

    libchart 1.2.2

    Libchart绘制图表的确很好用,唯一可惜的就是对中文支持不好,在图表里显示为乱码。琢磨了一下,运用之前修改dotproject中文乱码问题的经验,改了改Libchart,现在成功的支持中文字体了。 做法很简单: 1、自己写的...

    up_320463_libchart_uw62u.rar

    使用php做的,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,学习研究参考均可

    up_507525_libchart_yen93.rar

    一份不错的php源码,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,阅读提升自我参考代码

    up_1209597_libchart_yyjw0.rar

    脚本语言服务端php实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,手头参考的例子程序代码

    up_732910_libchart_kpd4x.rar

    服务端脚本语言php实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,作为开发的各种例子程序代码

    up_362001_libchart_up6brh.rar

    php源码实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,阅读提升自我参考代码

    up_119813_libchart_w8iwb.rar

    一份不错的php源码,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,作为开发的各种例子程序代码

    up_366272_libchart_36c2p8.rar

    利用php实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,参看、研究和阅读,提升自我

    up_183279_libchart_lgb6zh.rar

    php脚本语言实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,参看、研究和阅读,提升自我

    up_1003902_libchart_jho0k.rar

    一份不错的php源码,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,作为开发的各种例子程序代码

    up_1009313_libchart_2zg9q.rar

    采用php的源码实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,阅读提升自我参考代码

    up_146054_libchart_7aqd0c.rar

    采用php的源码实现,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,手头参考的例子程序代码

    up_1217205_libchart_25n44.rar

    一份不错的php源码,libchart是一个使用php实现的简易的php的各种图表绘制的类库程序,包含相关的php的测试代码,参考学习应运于开发实践不错的例子

Global site tag (gtag.js) - Google Analytics