PHP绘图插件 jpgraph的使用

该博客介绍了使用PHP的jpgraph插件绘图的方法。先从官网下载插件并安装到项目中,引用时需引入相关文件,还提及可绘制折线图、饼图等,给出了绘制简单折线图的示例,最后提供了详细操作文档的链接。

首先下载jpgraph插件,可以去官网下载 https://jpgraph.net/download/
然后将插件安装到你的项目里去就可以使用了。
当你引用插件的时候你要先引入相关的文件,
绘制折线图:

include ("src/jpgraph.php"); //必须要引用的文件  
include ("src/jpgraph_line.php"); //包含曲线图文件  
//具体文件路径以实际项目为准

绘制饼图

include ("../jpgraph.php"); //必须要引用的文件  
include ("../jpgraph_pie.php"); //包含曲线图文件  

其他图不一一举出,详细的操作文档可以查看文章末给出的文档链接。
绘制简单的折线图

<?php  
$ydata = array(11,3,8,12,5,1,9,13,5,7);  
// x 轴数据,作为 x 轴标注  
$xdata = array('2007-3-01','2007-3-03','2007-3-05','2007-3-07','2007-3-09','2007-3-01','2007-3-11','2007-3-13','2007-3-15');  
$graph = new Graph(350,150,"auto");  
// 设置刻度类型,x轴刻度可作为文本标注的直线刻度,y轴为直线刻度  
$graph->SetScale("textlin");  
  
// 设置图表大标题  
$graph->title->Set(‘Example’);  
$lineplot = new LinePlot($ydata);  
$graph->Add($lineplot);  
  
// 设置图表灰度四周边距,顺序为左右上下  
$graph->img->SetMargin(60,20,20,50); 
// 设置输出文件格式为 jpg,缺省为 png  
$graph->img->SetImgFormat( "jpeg");  
// y 轴坐标描点形状为菱形  
$lineplot-> mark->SetType(MARK_DIAMOND );  
// 加入 x 轴标注  
$graph->xaxis->SetTickLabels($xdata);  
  
// 定位 x 轴标注垂直位置应在最下方  
$graph->xaxis->SetPos("min");  
  
// 设置 x 轴标注文字为斜体,粗体,6号小字  
$graph->xaxis->SetFont(FF_ARIAL,FS_BOLD,6);  
  
// 设置 x 轴标注文字 45 度倾斜。注:前面 SetFont 必须为 FF_ARIAL  
$graph->xaxis->SetLabelAngle(45);  
  
// x 轴刻度间隔为 2  
$graph->xaxis->SetTextLabelInterval(2);  
  
// 标题和 y 轴标题字体为标准字体  
$graph->title->SetFont(FF_FONT1,FS_BOLD,2);  
$graph->yaxis->title->SetFont(FF_FONT1,FS_BOLD);  
  
// y 轴坐标点连线为蓝色加深加粗  
$lineplot->SetColor("blue:0.5");  
$lineplot->SetWeight(2);  
$graph->yaxis->SetColor("black");  
$graph->yaxis->SetWeight(2);  
  
// 阴影效果  
$graph->SetShadow();  
  
// 显示图形  
$graph->Stroke(); ?>  

负责数据格式绘制折线图的列子,具体如下:

   $graph = new \Graph(950,500); 
   $graph->SetMargin(120,60,40,200); //
   $graph->SetScale('datlin');// 注意这里和上面列子不一样
   $graph->xaxis->SetLabelAngle(90); //设置X轴的刻度是否垂直显示
   $graph->xaxis->scale->SetDateFormat('Y-m-d H:i'); // 设置X轴的
   foreach ($uData as $u=>$uInfo){ //$uData是我自己的一个多维数组格式的数据,
          $ydata=[];$xdata=[]; //每条折线的x轴和Y轴值
           foreach ($uInfo['trendData'] as $t=>$tInfo){
                $ydata[$t]=$tInfo['value'];
                $xdata[$t]=strtotime($tInfo['clock']);
            }
            $line = new \LinePlot($ydata,$xdata);
            $line->SetLegend('xxx');//设置每条折线的案列名称
            $graph->Add($line); 
    }
    $fh='%';//这个可以视具体数据而定,是你数据的单位
   $uChang=new YUnitHelper(); //这个是自己封装的一个单位转换的组件
   $method=$uChang->readable($fh);
   if($method){
       $graph->yaxis->SetLabelFormatCallback(array($uChang,$method)); //设置Y轴上显示的格式,具体传参可产看文档
   }else{
       $graph->yaxis->SetLabelFormatString('% d'.$fh); //设置Y轴显示格式
   }
   $graph->legend->SetFont(FF_CHINESE,FS_NORMAL,10); //设置案列的字体和大小
   $graph->title->Set(iconv("UTF-8","GB2312//IGNORE","测试")); //设置图片标题  具体是否需要用iconv来转换格式视你具体情况而定
   $graph->title->SetFont(FF_SIMSUN,FS_BOLD,12); //设置图片标题字体大小
   $graph->Stroke('img.png'); //参数可省略,具体查看文档

暂时就写这么多,人比较懒,有啥不明白可以评论中提问。对了,文档地址是:
https://jpgraph.net/download/manuals/classref/index.html
可以结合插件源代码去熟悉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值