在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. window.open()被部分浏览器拦截问题

    下面代码一切从简,大家理解即可 一.原因:1.因为在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的: 二.什么情况下不会被拦截或会被拦截? 1. $('#btn'). ...

  2. EL表达式多条件判断方式

    <td> <c:forEach items="${cityMap}" var="entry"> <hr> <input ...

  3. git服务器配置http请求

    使用apache 配置http协议的git库 在CentOS上基于Apache http服务搭建git远程仓库(一) 基于http方式的git服务器搭建 搭建http协议的git服务器 Linux g ...

  4. PyCharm安装及使用

    搭建环境 1.win10_X64,其他Win版本也可以. 2.PyCharm版本:Professional-2016.2.3. 搭建准备 1.到PyCharm官网下载PyCharm安装包.   Dow ...

  5. CentOS7 修改网卡名称为eth0

    前言 无论是RHEL 7.还是CentOS 7都使用了NetworkManager.service来进行网络管理,当然network服务还是可以继续使用的,但也将会是过渡期的残留品了. 除此之外7版本 ...

  6. 【JavaWeb】客户关系管理系统

    前言 为了巩固开发的流程,我们再拿一个客户关系管理系统来练手...! 成果图 我们完成的就是下面的项目! 搭建配置环境 配置Tomcat 导入开发包 建立开发用到的程序包 在数据库创建相对应的表 CR ...

  7. MYSQL 基础总结

    学习笔记 [mysql 是不区分大小写的,要区分可以用相应的函数:所有标点符号全是英文状态下的] 一.基础部分 //创建数据库 Create  database  database_name; //使 ...

  8. Java中简单Http请求

    1. 概述 在这篇快速教程中,我们将使用Java内置类HttpUrlConnection来实现一个Http请求. 2. HttpUrlConnection HttpUrlConnection类允许我们 ...

  9. linux 命令:tr 的简单使用

    工作的需要,用到了tr命令,因为用到的次数不是很多,怕以后忘记了百度,就自己总结下.例子什么的,copy linux shell 脚本攻略这本书. tr:常用选项 -c 用字符串1中字符集的补集替换此 ...

  10. CodeForces-748B

    关键在于判断是否能够得到解决办法,我的思路就是用一个数组来记录每个小写字母对应的按键,如果它出现对应两个级以上不同的按键那么就说明不能得出解决办法,直接打印'-1'.如果能够得出解决办法,就扫描一下数 ...