jpgraph 折线图--解决中文乱码的问题(标题和图例)

摘要:
*/$此->Dd($this->//多段线数据$xdata=数组('其他故障因素'=>'过程故障因素'=>数组([0]=>0[12]=<//返回路径$path[]=$this->'ReportPdf_1.png');公共$root_path;$picname=null){34require_one($this->

在jpgraph根目录中:

如Jpgjpgraph_ttf.inc.php 中开头添加

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

Jpgjpgraph_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');

图例:

jpgraph 折线图--解决中文乱码的问题(标题和图例)第1张

变量:

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

函数:

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

免责声明:文章转载自《jpgraph 折线图--解决中文乱码的问题(标题和图例)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇CC2540开发板学习笔记(九)—— BLE协议简介第二节:Vue3向下兼容1(Mustcache v-once text html pre cloak v-bind v-on v-if v-show等等)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

c# aes/cbc/pkcs5padding 模式的算法

#region 新订购接口加解密 /// <summary> /// 对字符进行UrlEncode编码 与Java通用版 /// string转Encoding格式 /// </summary> /// <param name="text">...

提高iOS开发效率的第三方框架等--不断更新中。。。

1. Mantle Mantle 让我们能简化 Cocoa 和 Cocoa Touch 应用的 model 层。简单点说,程序中经常要进行网络请求,请求到得一般是 json 字符串,我们一般会建一个 Model 类来存放这些数据。这就要求我们编写一系列的序列化代码,来把 json 转换为 Model 。这很费时间,容易错,不容易修改。 Mantle 很好...

MySQL服务器端&amp;amp;客户端常见错误

目录(?)[+] 客户端 服务器端 客户端 1.ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query 使用select 一个大表,query的过程中被主库kill掉会出现下面错误 2.ERROR 2006 (HY000): MySQL...

screen的使用

screen的好处就是不会因为远程的操作因网络问题中断掉。 安装 yum -y install screen  创建一个新的窗口 screen -S <name>  查看会话 screen –ls 隐藏并保留当前会话窗口: 按Ctrl+A,再按"D"键 恢复会话窗口: screen -r xx #恢复名字为xx的会话 完全退出 当...

fastboot 烧写内核

夏新N80手机,很久没用,今天想试试自己的kernel性能,插上进不了串口,问人才知道OBM关了开机进入串口模式,得开机时按下 向下键才能进入串口模式,而且N80的bug,还不能插上串口开机,不如试试fastboot 烧 kernel记录如下,防止忘记:先下载fastboot工具放在桌面上,然后:b186@b186-desktop:~/桌面$ sudo ....

通过form上传文件(php)

 前段代码 //提交form表单,包含file //方法1:使用jquery-form.js插件 /* $("form").ajaxSubmit(function (resp_img_url) { //直接返回图片的url $("#btn_titlepic").html(str_old); $("#img_titlepic").attr("src"...