1.要支持中文须要用到simhei.ttf和simsun.ttc这两个字体,在使用中文的时候须要使用SetFont(FF_SIMSUN,FS_BOLD)设置字体。
将须要的字体放入到项目文件夹下的src\fonts\文件夹里
在jpgraph.php中有下面这样一段代码是设置字体文件路径的
//
// Setup path for western/latin TTF fonts
//
if (!defined('TTF_DIR')) {
    if (strstr( PHP_OS, 'WIN') ) {
        $sroot = getenv('SystemRoot');
        if( empty($sroot) ) {
            $t = new ErrMsgText();
            $msg = $t->Get(12,$file,$lineno);
            die($msg);
        }
        else {
            define('TTF_DIR', $sroot.'/fonts/');
        }
    } else {
        define('TTF_DIR','/usr/share/fonts/truetype/');
    }
2.须要注意的是:要想适用jpgraph,你的PHP必须开启了GD2扩展。


假设是在window下首先须要改动文件的路径

改动jpgraph_ttf.inc.php文件
$jpgraph_font_dir = dirname(__FILE__).'\\fonts\\';//改动字体的路径从原来的/fonts/ 改为 \\fonts\\
假设没改动在windows下会报以下的错误

解决中文问题:
假设你的文件编码为utf-8,改动方法例如以下
方法一:
找到
        elseif( $aFF === FF_SIMSUN) {
            // Do Chinese conversion
            if( $this->g2312 == null ) {
                include_once 'jpgraph_gb2312.php' ;
                $this->g2312 = new GB2312toUTF8();
            }
            return $this->g2312->gb2utf8($aTxt);
        }
改动为
        elseif( $aFF === FF_SIMSUN) {
            // Do Chinese conversion
            /*
            if( $this->g2312 == null ) {
                include_once 'jpgraph_gb2312.php' ;
                $this->g2312 = new GB2312toUTF8();
            }
            return $this->g2312->gb2utf8($aTxt);
            */
         return $aTxt;
        }
方法二:在程序中改动
$title="流量图";

$title = iconv("UTF-8", "gb2312", $title);

$graph->title->Set($title);

注:
jpgraph默认显示汉字时是把汉字编码觉得gb2312,转化为utf-8以后再显示。

这种话,假设你的文件编码是gb2312,SetFont方法的第一个參数为FF_SIMSUN就可以。

假设你是utf-8编码你还须要先把汉字编码转化为gb2312。这样你的汉字才干够正常显示。


代码例如以下:


<?php
/**
 * 使用jpgraph生成3D饼图
 *
 */
include 'src/jpgraph.php';
include 'src/jpgraph_pie.php';
include 'src/jpgraph_pie3d.php';//引用3D饼图pieplot3D对象所在的类文件


$result = array(5,8,11,1,1,1);
$vote_content = array("张三","丽丽","lili","张三","丽丽","lili");
$title = '标题';

$graph = new PieGraph(500,245);//创建图像
$graph->SetShadow();//创建图像阴影
$graph->tabtitle->SetFont(FF_SIMSUN,FS_BOLD,14);//设置标题字体
$graph->tabtitle->Set($title);//输出标题
$graph->title->SetColor("darkblue");//定义标题颜色


$p1 = new PiePlot3D($result);//创建图像
//$p1->SetTheme("water");//控制图像的颜色
//$p1->SetCenter(0.4);//设置图像位置
//$p1->SetSize(0.4);//设置图像的大小
//$p1->SetHeight(20);//设置饼图的高度
//$p1->SetAngle(45);//设置图像的倾斜角度
//$p1->Explode(array(5,40,10,30,20));//控制饼图的切割
//$p1->value->SetFont(FF_SIMSUN,FS_BOLD,20);//设置字体
/* 凝视文字 */
$p1->SetLegends($vote_content);
$graph->legend->SetFont(FF_SIMSUN,FS_BOLD);//设置凝视文字字体
$graph->legend->Pos(0.05,0.3,"right","center");//控制凝视文字的位置
$graph->legend->SetShadow();//边界
$graph->legend->SetLayout(LEGEND_VERT);//设置图例样式和位置

$graph->Add($p1);//加入数据
$graph->Stroke();//生成图像

PHP 画图——使用jpgraph画图的更多相关文章

  1. JpGraph 画图

    1:借鉴地址 PHP jpgraph安装及基本用法 http://www.php.cn/php-weizijiaocheng-400977.html JpGraph使用详解之中文乱码解决方法 http ...

  2. C#-gdi画图,双缓冲画图,Paint事件的触发---ShinePans

    在使用gdi技术画图时,有时会发现图形线条不够流畅,或者在改变窗口大小时会闪烁不断的现象.(Use DoubleBuffer to solve it!)                         ...

  3. c# GDI画图 双缓冲画图分析

    双缓冲绘图分析  1.Windows 绘图原理  我们在 Windows 环境下看到各种元素,如菜单.按钮.窗口.图像,从根本上说,都是“画”出来的.这时的屏幕,就相当于一块黑板,而 Windows ...

  4. matlab--二维画图及三维画图的相关命令

    clc;clear all;close all; % plot3是最简单的三维图% mesh是网格图% surf是曲面图%plot3-------------------------t1=0:pi/3 ...

  5. Matlab画图-非常具体,非常全面

    Matlab画图 强大的画图功能是Matlab的特点之中的一个,Matlab提供了一系列的画图函数,用户不须要过多的考虑画图的细节,仅仅须要给出一些基本參数就能得到所需图形,这类函数称为高层画图函数. ...

  6. IOS SWIFT基本画图教程

    OS SWIFT基本画图教程 其实这是以前做过的一个例子,方便自己参考的代码!希望对大家也有点参考. 首先,建立一个Swift类,继承UIView这个类,然后重写 func drawRect(rect ...

  7. gnuplot画图中文标注相关问题

    gnuplot是一个基于命令行的开源跨平台画图工具包,画图功能非常丰富.不过最近在考虑如何在gnuplot图中添加中文标注的过程中遇到了一些问题,记录如下. gnuplot支持多种的输出格式,比如pn ...

  8. AutoCAD 凸度(bulge)的概念及使用WPF函数画图

    前言  凸度(bulge)是AutoCAD 中一个非常重要的概念,凸度控制着两点之间弧度大小,弧度的方向.各种复杂的图像有可能就是成百上千的弧线组成的.从AutoCAD中导出的数据也有该值,一般的形式 ...

  9. HTML5 canvas画图

    HTML5 canvas画图 HTML5 <canvas> 标签用于绘制图像(通过脚本,通常是 JavaScript).不过,<canvas> 元素本身并没有绘制能力(它仅仅是 ...

随机推荐

  1. svn搭建脚本

    1.yum install subversion 2.输入rpm -ql subversion查看安装位置 我们知道svn在bin目录下生成了几个二进制文件. 输入 svn --help可以查看svn ...

  2. git服务器端安装

    一.服务器端安装 git支持四种传输协议 1.本地协议 2.ssh协议 3.git协议 4.http/s协议 [root@zabbix ~]# cat /etc/redhat-release Cent ...

  3. Java性能调优概述

    目录 Java性能调优概述 性能优化有风险和弊端,性能调优必须有明确的目标,不要为了调优而调优!!!盲目调优,风险远大于收益!!! 程序性能的主要表现点 执行速度:程序的反映是否迅速,响应时间是否足够 ...

  4. CSS3---媒体查询与响应式布局

    1. 值 设备类型 All 所有设备 Braille 盲人用点字法触觉回馈设备 Embossed 盲文打印机 Handheld 便携设备 Print 打印用纸或打印预览视图 Projection 各种 ...

  5. python 学习总结2

    温度转换问题 一.温度转换 目前有两种表示温度的方法一种是摄氏度另一种是华氏度,摄氏度的结冰点为0度,沸点为100度将温度等分刻画,华氏度的结冰点为32度,沸点为212度将温度进行等刻度划分. 现需要 ...

  6. POJ2421 Constructing Roads

    Constructing Roads 这道题很水,就是一个裸的最小生成树,最不过把已经连接的节点的值再设为0. 代码: #include<cstdio> #include<cstri ...

  7. waiting TTFB 时间优化

    百度百科解释:获取在接收到响应的首字节前花费的毫秒数. 根据chrome浏览器,具体请求链接的这个时间,对反应慢的页面进行优化.

  8. JS 回车跳转

    window.onload = function () { SeteasyuiTheme(); jQuery(':input:enabled').addClass('enterIndex'); var ...

  9. Cloud BOS平台-自定义用户联系对象

    适用业务场景:新增用户时,联系对象类型默认为:职员.客户.供应商.客户需要增加一类"承运商",类型选择"承运商"时,联系对象只显示相应的承运商."承运 ...

  10. Wannafly挑战赛2_D Delete(拓扑序+最短路+线段树)

    Wannafly挑战赛2_D Delete Problem : 给定一张n个点,m条边的带权有向无环图,同时给定起点S和终点T,一共有q个询问,每次询问删掉某个点和所有与它相连的边之后S到T的最短路, ...