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. linux中的grep命令用法

    原文请移驾:http://blog.csdn.net/greytree/article/details/428532 grep -- print lines matching a pattern (将 ...

  2. Python+selenium(Autolt实现上传)

    AutoIt是一个使用类似BASIC脚本语言的免费软件,被设计用来进行Windows GUI的自动化测试.它利用模拟键盘按键,鼠标移动和窗口/控件的组合来实现自动化任务. 此次小编介绍的是利用Auto ...

  3. xtu字符串 A. Babelfish

    A. Babelfish Time Limit: 3000ms Memory Limit: 65536KB 64-bit integer IO format: %lld      Java class ...

  4. Dividing coins (01背包)

    It’s commonly known that the Dutch have invented copper-wire. Two Dutch men were fighting over a nic ...

  5. POJ 1006-Biorhythms,中国剩余定理,学信安的路过!

                                                       Biorhythms 我竟然1A了, 终于从一天的浑噩中找回点自信了.人生第一次做中国剩余定理的题 ...

  6. UVA 11090 判负圈问题

    题目链接http://vjudge.net/problem/viewProblem.action?id=34650 题目大意: 给定n个点m条边的加权有向图,求平均权值最小的回路.平均权值=路径权值之 ...

  7. [luoguP2216] [HAOI2007]理想的正方形(二维单调队列)

    传送门 1.先弄个单调队列求出每一行的区间为n的最大值最小值. 2.然后再搞个单调队列求1所求出的结果的区间为n的最大值最小值 3.最后扫一遍就行 懒得画图,自己体会吧. ——代码 #include ...

  8. 全局Session-GlobalSession

    import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpSession; import org.spri ...

  9. Codevs 2666 2666 Accept Ratio

    时间限制: 1 s  空间限制: 32000 KB   题目等级 : 钻石 Diamond 题目描述 Description 某陈痴迷于pku的ACM题库,常常彻夜奋斗刷题.他最近的目标是在NOIP0 ...

  10. BZOJ1739: [Usaco2005 mar]Space Elevator 太空电梯

    n<=400个东西,每个东西有高度<=100,这种东西在堆放过程中不得超过的最大高度<=40000,以及每个东西的个数<=10,求最高能堆多高. 算了下背包复杂度不太对然后开了 ...