在jpgraph根目录中:

如Jpg\jpgraph_ttf.inc.php 中开头添加

define('CHINESE_TTF_FONT','SIMYOU.TTF');

\Jpg\jpgraph_legend.inc.php 中大约24行添加 修改

public $font_family=FF_CHINESE,$font_style=FS_NORMAL,$font_size=8; // old. 12

然后

 /**作图 前期准备  set_time_limit(0);*/
$this->root_path=realpath(dirname(__FILE__).'/../../../');
$this->root_path=str_replace('\\','/',$this->root_path);
dd($this->root_path);
/**图1 故障停机时间折线图 */
//x轴刻度数据
$x_zuobiaos=Array
(
[0] => 16/10
[1] => 16/11
[2] => 16/12
[3] => 17/01
[4] => 17/02
[5] => 17/03
[6] => 17/04
[7] => 17/05
[8] => 17/06
[9] => 17/07
[10] => 17/08
[11] => 17/09
[12] => 17/10
);
//折线数据
$xdata=Array
(
'其它故障因素'=> Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 0
[8] => 0
[9] => 0
[10] => 0
[11] => 2.90
[12] => 0
), '工艺故障因素' => Array
(
[0] => 0
[1] => 0
[2] => 0
[3] => 0
[4] => 0
[5] => 0
[6] => 0
[7] => 2.25
[8] => 0
[9] => 0
[10] => 0
[11] => 0
[12] => 0
)
)
//最大值,最小值区间
$mimax[0]=$min-$max*0.1;
$mimax[1]=$max*1.1;
//返回路径
$path[]=$this->dojpgraph_zx('故障停机时间曲线图','','小时',$x_zuobiaos,$xdata,$mimax,'ReportPdf_1.png');

图例:

变量:

public $root_path;
public $iColorList = array('azure4', 'orange', 'darkgreen', 'red', 'aquamarine3', 'blue','chocolate',
'brown', 'cadetblue3', 'chartreuse4', 'AntiqueWhite3', 'darkblue');

函数:

  //折线,支持中文
public function dojpgraph_zx($title,$x_title,$y_title,$x_zuobiao,$xdata,$mimax,$picname=null){ require_once($this->root_path."/Jpg/jpgraph.php");
require_once($this->root_path."/Jpg/jpgraph_line.php");
$x_zuobiao=array_merge(array(''),$x_zuobiao);//把原点坐标空出来
// $data1 = array(523,634,371,278,685,587,490,256,398,545,367,577); //第一条曲线的数组 $graph = new \Graph(900,450);// 图表的长宽
$graph->SetScale("textlin",0,$mimax[1]);//设置刻度样式 $mimax 刻度多10%
// $graph->SetY2Scale('lin');//设置右边刻度样式 http://www.jb51.net/article/105672.htm
$graph->SetShadow();//设置背景带阴影
//设置图表灰度四周边距,顺序为左右上下
$graph->img->SetMargin(60,30,30,70);
$graph->graph_theme = null; //设置主题为null,否则value->Show(); 无效 // $lineplot1->SetFillColor("orange"); //填充色 //设置图表的标题字体、大小 解决中文乱码
$graph->title->Set(iconv("UTF-8","GB2312//IGNORE",$title)); //设置图像标题
$graph->xaxis->title->Set(iconv("UTF-8","GB2312//IGNORE",$x_title)); //设置坐标轴名称
$graph->yaxis->title->Set(iconv("UTF-8","GB2312//IGNORE",$y_title));
// $graph->y2axis->title->Set(iconv('utf-8', 'GB2312//IGNORE', "book B 销售金额(万元)"));//设置y轴的标题
// $graph->y2axis->title->SetMargin(20);//设置右边的title到图的距离
$graph->title->SetMargin(10);//设置title到图的距离
$graph->xaxis->title->SetMargin(10);
$graph->yaxis->title->SetMargin(10);
//设置字体
$graph->title->SetFont(FF_SIMSUN,FS_BOLD);
$graph->xaxis->title->SetFont(FF_SIMSUN,FS_BOLD); //设置图表的标题字体、大小
$graph->yaxis->title->SetFont(FF_SIMSUN,FS_BOLD);// FF_SIMSUN表示中文简体
//折线颜色图例
$graph->legend->SetLayout(LEGEND_HOR);
// $graph->legend->Pos( 0.025, 0.08, "right","center" ); //图例文字框的位置 0.025,0.08 是以右上角为基准的,0.025是距左右距离,0.08是上下距离。 http://nodonkey.iteye.com/blog/761700
$graph->legend->Pos(0.4, 0.95, 'center', 'bottom');// 图例文字框的位置 0.4,0.95 是以右上角为基准的,0.4是距左右距离,0.95是上下距离
//数据
//颜色图例
$i=0;
foreach($xdata as $k=>$v){
$v=array_merge(array(''),$v);
$lineplot='lineplot'.$i;
$$lineplot=new \LinePlot($v); //创建设置n条曲线对象
$$lineplot->value->SetColor($this->iColorList[$i]); //设置线上字体颜色
/* $color=new \ColorFactory();
$$lineplot->value->SetColor($color->getColor()); //设置线颜色随机*/
$$lineplot->SetWeight(4); //线宽 加深加粗
$$lineplot->value->Show();
// $bt=iconv("UTF-8","gb2312",$legend[$k-1]);
// $$lineplot->SetFont(FF_SIMSUN,FF_SIMSUN,8);
$$lineplot->SetLegend($k); $graph->Add($$lineplot); //在统计图上绘制曲线
$$lineplot->SetColor($this->iColorList[$i]); //设置统计图的颜色,一定要在添加到画布之后再设置
$i++;
}
//x轴坐标 自带月份 $gDateLocale=new \DateLocale; $graph->xaxis->SetTickLabels($gDateLocale->GetShortMonth());
$graph->xaxis->SetTickLabels($x_zuobiao); //x轴坐标 月份 if($picname==null) {
$graph->Stroke(); //生成本地图表,黙认留空,生成在当前目录,可以Stroke(“路径/文件名.png”)这样指定路径
} else{
$path=$this->root_path.'/Uploads/report/'.$picname;
if(file_exists($path)){
@unlink($path);
}
$graph->Stroke($path); //保存图像
return $path;
}
}

jpgraph 折线图--解决中文乱码的问题(标题和图例)的更多相关文章

  1. git status 显示中文和解决中文乱码

    目录 git status 显示中文和解决中文乱码 解决git status不能显示中文 解决git bash 终端显示中文乱码 通过修改配置文件来解决中文乱码 git status 显示中文和解决中 ...

  2. 在PHP中PDO解决中文乱码问题的一些补充

    我的环境是appsver包, 在网上最常出现的解决中文乱码显示的代码是: 第一种:PDO::__construct($dsn, $user, $pass, array (PDO::MYSQL_ATTR ...

  3. 增加UBUNTU字符集 解决中文乱码问题

    对GBK,GB2312,GB18030字符集的支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题. 我想这个问题肯定有其他人 ...

  4. Sublime Text 2—解决中文乱码

    Sublime Text 2是一个非常棒的代码及文本编辑器,绿色小巧.速度飞快,跨平台支持Win/Mac/Linux,支持32与64位,支持各种流行编程语言的语法高亮.代码补全等,有着许多其他编辑器没 ...

  5. zabbix解决中文乱码问题(没有测试成功)

    zabbix解决中文乱码问题 1.在windows系统中找一个自己喜欢的字体,这里我们用:msyh.ttf 2.将字体上传至/var/www/html/zabbix/fonts目录下 [root@za ...

  6. 【原创】通俗易懂地解决中文乱码问题(2) --- 分析解决Mysql插入移动端表情符报错 ‘incorrect string value: '\xF0...

    这篇blog重点在解决问题,如果你对字符编码并不是特别了解,建议先看看 < [原创]通俗易懂地解决中文乱码问题(1) --- 跨平台乱码 >. 当然,如果只是针对解决这个Mysql插入报错 ...

  7. Debian 6解决中文乱码

    DEBIAN下中文显示 一.首先检查LOCALE情况 说明:DEBIAN因为基于GNU所以,对不同地域进行了不同的包支持,以LOCALE形式存在. 1.挂载ISO文件包,前8个ISO包就可以(这里不在 ...

  8. 04_过滤器Filter_02_Filter解决中文乱码问题

    [过滤器解决中文乱码问题实例] [工程截图] [web.xml] <?xml version="1.0" encoding="UTF-8"?> &l ...

  9. Web---演示servlet技术(servlet生命周期),解决中文乱码问题

    本节讲解决中文乱码问题的4种方法. 还有更好的方法,也就是用过滤器,这里就不演示了,博主目前也不会~呼♪(^∇^*)~过段时间才会学. servlet生命周期演示: index.jsp: <%@ ...

随机推荐

  1. 二、urllib进阶

    Handler处理器 和 自定义Opener opener是 urllib.request.OpenerDirector 的实例,我们之前一直都在使用的urlopen,它是一个特殊的opener(也就 ...

  2. zend framework框架学习走起——从零开始,点击记录-安装

    zend framework第一步,先来安装下zend framework框架. 先介绍下,我这边的php配置环境,为图省事,我是安装wampserver来搭载php环境的,,php+Apache+m ...

  3. linux下ACE的编译与安装

    1.环境变量的设置vim /etc/profile 2.然后输入export ACE_ROOT=/root/ACE/ACE_wrappers export MPC_ROOT=$ACE_ROOT/MPC ...

  4. (二)异步方法BeginInvoke和EndInvoke

    .Net framework可以让你异步调用任何方法,你可以定义一个与你要调用的方法的签名相同的委托.公共语言运行时将自动为该委托定义与签名相同的BeginInvok和EndInvoke方法. Beg ...

  5. MarkDown 编辑数学公式

    1. 参考博客:http://blog.csdn.net/smstong/article/details/44340637 1 数学公式的web解决方案 在网页上显示漂亮的数学公式,是多年来数学工作者 ...

  6. vue 路由懒加载 使用,优化对比

    vue这种单页面应用,如果没有应用懒加载,运用webpack打包后的文件将会异常的大,造成进入首页时,需要加载的内容过多,时间过长,会出啊先长时间的白屏,即使做了loading也是不利于用户体验,而运 ...

  7. 简单http文件服务器

    日常工作中,主要是通过ssh终端(putty等)远程开发,经常涉及到传输文件,因为本地系统为Win10,所以没办法利用强大的linux脚本来进行文件传输.之前用过python的SimpleHttp模块 ...

  8. return的新思考

    <!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" ...

  9. 54.1 怎样才算学会django? 知道这28个知识点才算会django2

    学到什么程度才算会django了?这篇文章帮你梳理一下 关于django2的28个不可不知的知识点总结: 1.cookie操作: -客户端本地存储的键值对 2.session操作: -服务器端可以保存 ...

  10. MySQL之表的数据类型

    一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...