在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. 较复杂makefile跟lds脚本程序的编写

    首先看个makefile范例: /*指明工具链,并为其取个简单的别名*/ CC = arm-linux-gcc LD = arm-linux-ld AR = arm-linux-ar OBJCOPY ...

  2. Sourcetree的安装与使用

    1 安装遇到的问题 https://segmentfault.com/q/1010000007643870 解决该问题的方法: http://www.jianshu.com/p/3478e2a214a ...

  3. docker 报错:x509: certificate has expired or is not yet valid

    环境:centos 7 程序:docker 下载镜像报错: # docker pull centos Pulling repository centos FATA[0004] Get https:// ...

  4. memcached 的实践操作

    memcached安装和使用   yum install -y libevent  memcached  libmemcached   启动命令:   /etc/init.d/memcached st ...

  5. 在windows端和linux端安装Git

    一.Git的安装 1. 在windows端 到地址:https://git-scm.com/downloads 选择对应版本下载后,进行傻瓜式安装即可 2.  在linux端 查看是否安装了git,出 ...

  6. SDP(7):Cassandra- Cassandra-Engine:Streaming

    akka在alpakka工具包里提供了对cassandra数据库的streaming功能.简单来讲就是用一个CQL-statement读取cassandra数据并产生akka-stream的Sourc ...

  7. Java经典编程题50道之四十八

    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. public ...

  8. Java经典编程题50道之四十

    将几个字符串排序(按英文字母的顺序). public class Example40 {    public static void main(String[] args) {        Stri ...

  9. Sphinx下载、安装、配置、Hello World、文档阅读

    sphinx下载.安装.配置.Hello World.查看文档

  10. hiho第151周 Building in Sandbox floodfill

    题意:题目背景是<<我的世界>>,堆方块造房子,堆的规则是:新堆的方块必须和已有方块有重合面,而且不能往封闭空间里堆. 在三维空间中,给定一个堆的序列,判断符不符合规则. 数据 ...