当先锋百科网

首页 1 2 3 4 5 6 7

        相信很多新手和我一样,在thinkphp里面使用jpgraph的时候,会遇到一些问题,如控制器里面直接嵌套jpgraph的代码,在php文件使用jpgraph嵌套html代码,不知道怎么输出到模板,不知道怎么在模板里面引用生成的统计图片,不知道怎么通过从数据库查出数据生成统计图等。

        在这里我说一下我的做法

        首先在控制器里构造数据

     $data="12|16|13|20|15";//构造数据
     $this->assign("data",$data);
    $this->display('content3');

        此处的数据可从数据库里面读出。
        然后在html模板里面引用,注意是用img。

    <img src='__PUBLIC__/conf/file.php?data=<{$data}>'/>

         在图片里面将数据传入名为file.php的文件里面(路径自选)。    

    include ("../jpgraph/jpgraph.php");
    include ("../jpgraph/jpgraph_bar.php");
    $data=$_GET['data'];
    $datas=explode("|",$data);
    $group=array('一月','二月','三月','四月','五月');
    $graph = new Graph(400,300);                                //创建新的Graph对象
     $graph->SetScale("textlin");
    $graph->SetShadow();                                       //设置阴影
     $graph->img->SetMargin(40,50,40,50);
    $graph->legend->SetFont(FF_SIMSUN,FS_BOLD);                //此处设置防止中文注释乱码
     $barplot=new BarPlot($datas);                             //创建新的BarPlot对象
    $barplot->SetFillColor('orange');
    $barplot->SetShadow('[email protected]');                       //设置阴影
    $barplot->value->Show();                         //填充颜色
    $barplot->SetLegend("人数");                             //设置注释
    $barplot->SetWidth(0.8);                                //设置柱状图宽度
    $graph->Add($barplot);                                     //将柱形图添加到图像中
    $graph->title->Set("统计分析");                      //设置标题和X-Y轴标题
    $graph->title->SetColor("red");
    $graph->title->SetMargin(10);
    $graph->xaxis->title->Set("分组");
    $graph->xaxis->title->SetMargin(5);
    $graph->xaxis->SetTickLabels($group);
    $graph->yaxis->title->Set("数值");
    $graph->title->SetFont(FF_SIMSUN,FS_BOLD);           //设置标题字体
    $graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);
    $graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD);
    $graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD);
    $graph->Stroke();


        在里面用$_GET获取数据,生成统计图

        访问控制器得出如下结果

        再次强调几个易错点

       1.不要在控制器里面引用jpgraph

       2.在模板里面用img应用php文件

       3.在php文件里面获取数据,应该jpgraph,此处不得嵌套任何html代码或类似echo,print_r 等php语句,不然会出现乱码