PHP使用JpGraph创建柱状图安装及中文显示问题解决办法

这是最后的效果图可以先看一下:


虽然网上有很多教程,但还是写一篇自己的调试经过,加深印象

安装教程:

https://blog.csdn.net/qq_15096707/article/details/48930149

使用教程:

https://blog.csdn.net/liupengcheng201/article/details/44593713

第一步  安装:

1.明确自己的PHP版本,往这个网址(https://jpgraph.net/download/)下载文件,放到项目中

2.将文件下的scr文件重命名为jpgraph

3.查看gd库是否打开:在php的配置文件php.ini文件中查找extension=php_gd2.dll,取消注释

4.检测安装:我直接在网上粘贴了代码放在项目中,图片可以正常显示,表示我的安装没有问题

第二步  使用:

1.路径包含正确

2.中文显示问题,我在查找的过程中,有很多是改源码的,总觉得不靠谱,因为我本身文件是gb2312的后来用的是:

Gpgraph默认显示汉字时是把汉字编码认为gb2312,转化为utf-8以后再显示,如果文件的编码方式是gb2312,只需把SetFont()方法的第一个参数设置为FF_SIMSUN即可

3.我当时做的时候,遇到的一个问题是标题可以正常显示中文,但是横坐标却不行,后来都快绝望了,加了一行

 
 
$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD);

  因为当时我只知道title有setfont方法,不知道xaxis也有,设置之后就可以正确显示中文了

4.还有一个问题是,用jpgraph是生成的图片,我需要在页面中显示,页面中还要包括其他的内容

 我找了很久,没有好的方法,后来是用的frameset来实现的

这是代码:

//柱状图图片
	public function histogramlistAction(){
		//包含路径
		require_once  dirname(dirname(dirname(dirname(__FILE__)))) . '/public/jpgraph-4.2.1/jpgraph/jpgraph.php"';
		require_once  dirname(dirname(dirname(dirname(__FILE__)))) . '/public/jpgraph-4.2.1/jpgraph/jpgraph_line.php"';
		require_once  dirname(dirname(dirname(dirname(__FILE__)))) . '/public/jpgraph-4.2.1/jpgraph/jpgraph_error.php"';
		require_once  dirname(dirname(dirname(dirname(__FILE__)))) . '/public/jpgraph-4.2.1/jpgraph/jpgraph_bar.php"';

		//获取数据
		$datay=array(
			 $itemInfo->getService_charge(),
			 $infos[0]['money_sums'],
			 0,
			 $infos[0]['item_bonuss'],
			 $infos[0]['money_sums']+$infos[0]['item_bonuss'],
			 $infos[0]['shares'],
			 $infos[0]['money_sums']+$infos[0]['item_bonuss']+$infos[0]['shares'],
			 $itemInfo->getService_charge()-($infos[0]['money_sums']+$infos[0]['item_bonuss']+$infos[0]['shares']),
			 0,
		);
		$graph = new Graph(1200,600,'auto');
		$graph->SetScale("textlin");
		$graph->SetShadow();
		$graph->SetMarginColor("yellow");                      //设置画布背景色为淡蓝色
		$graph->img->SetMargin(200,30,40,40);
		//横坐标
		$datax=array('服务费', '项目人工', '项目报销', '项目奖金', '直接成本', '分摊成本', '总成本', '盈亏', '预期盈亏');
		$graph->xaxis->SetTickLabels($datax);
		$graph->xaxis->SetFont(FF_SIMSUN,FS_BOLD);
		//标题
		$title=$itemInfo->getName()."成本统计柱状图";
		$graph->title->Set($title);
		$graph->title->SetFont(FF_SIMSUN,FS_BOLD);

		$bplot1 = new BarPlot($datay);
		$bplot1->SetFillColor("orange");
		$bplot1->SetShadow();
		$bplot1->SetShadow();
		$gbarplot = new GroupBarPlot(array($bplot1));
		$gbarplot->SetWidth(0.6);
		$graph->Add($gbarplot);
		echo  $graph->Stroke();
		die;
	}


 



 


猜你喜欢

转载自blog.csdn.net/ymk0375/article/details/80527646
今日推荐