在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. 试着把.net的GC讲清楚(1)

    什么是GC? GC(garbage collection)是对内存管理中回收已经不用的内存的一种机制,我们熟知的java和.net都有自己的GC机制,是内存管理的一部分. 为什么会有GC呢?是因为动态 ...

  2. WebSocket就是这么简单

    前言 今天在慕课网上看到了Java的新教程(Netty入门之WebSocket初体验):https://www.imooc.com/learn/941 WebSocket我是听得很多,没有真正使用过的 ...

  3. PHP7 Xdebug配置方式

    方式一 到http://xdebug.org/files/php_xdebug-2.4.1-7.0-vc14.dll下载最新版的XDebug文件. 下载之后放到PHP7根目录下的ext子目录下. PH ...

  4. JS工厂模式开发实践

    JS工厂模式开发实践 基于JS工厂模式的H5应用,实现了轮播图功能与滑屏功能,并且实现了文字大小的自适应功能,基于SASS样式开发. 核心的JS代码如下: index.js define(functi ...

  5. nginx的location优先级

    在nginx配置文件中,location主要有这几种形式: 1. 正则匹配 location ~ /abc { } 2. 不区分大小写的正则匹配 location ~* /abc { } 3. 匹配路 ...

  6. redis —主从&&集群(CLUSTER)

    REDIS主从配置 为了节省资源,本实验在一台机器进行.即,在一台机器上启动两个端口,模拟两台机器. 机器准备: [root@adailinux ~]# cp /etc/redis.conf /etc ...

  7. php常用面试知识点

    1.php基础 2.mysql基础 3.js基础 4.jq 5.正则 6.面向对象 7.分页类,购物车类,数据库类,上传类,图片处理类 8.smarty模板技术(以及自己写模板引擎) 9.ajax 1 ...

  8. 关于HTTP,你知道哪些?

    HTTP简介 HTTP 的全称是 Hypertext Transfer Protocol,超文本传输协议 规定客户端和服务器之间的数据传输格式 让客户端和服务器能有效地进行数据沟通 HTTP 协议是网 ...

  9. nyoj 1022 合纵连横 经典并查集

    思路:关键在于并查集的删点操作. 给每个诸侯国一个另外的编号,比如box[i]表示诸侯国i现在处于第box[i]个联盟,可以随时改变它的联盟编号,并且让box[i] = k, 实现删除操作.以前联盟中 ...

  10. 【CF 678F】Lena and Queries

    Time Limit: 2000 ms   Memory Limit: 512 MB Description 初始有一个空集合 n个操作 有三种操作,如下: 1 a b 表示向集合中插入二元组(a,b ...