標籤:漢字 gb2312 font theme pie 資料 lin pos new
??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畫圖