JPGraph 是一套純 PHP 實現的物件導向圖表庫,支援長條圖、圓餅圖、折線圖、甘特圖、雷達圖等十多種圖表類型,輸出格式包含 PNG、JPEG、GIF。無需外部執行檔,僅需 GD 擴展即可運作,適合動態報表、儀表板、統計分析系統。
src/ 目錄下的 jpgraph/ 資料夾放入專案可存取路徑(如 /vendor/jpgraph/)。cache/ 目錄可寫入(用於快取圖片提升效能)。jpg-config.inc.php 中設定 TTF_DIR 指向系統字體目錄(如 /usr/share/fonts/),以支援中文顯示。<?php
require_once 'vendor/jpgraph/jpgraph.php';
require_once 'vendor/jpgraph/jpgraph_line.php';
$data = [12, 19, 3, 5, 2, 3, 7, 8, 9, 10]; // Y 軸資料
$graph = new Graph(400, 300);
$graph->SetScale('textlin'); // X 軸文字、Y 軸線性
$graph->SetMargin(40, 40, 30, 40); // 左、右、上、下邊距
$graph->title->Set('月度銷售趨勢');
$graph->title->SetFont(FF_FONT1, FS_BOLD, 14);
$graph->xaxis->SetFont(FF_FONT1, FS_NORMAL, 10);
$graph->yaxis->SetFont(FF_FONT1, FS_NORMAL, 10);
$line = new LinePlot($data);
$line->SetColor('blue');
$line->SetWeight(2);
$line->SetLegend('2024 年');
$graph->Add($line);
$graph->Stroke(); // 輸出圖片至瀏覽器
?>
| 圖表類型 | 需引入檔案 | 主要類別 |
|---|---|---|
| 折線圖 | jpgraph_line.php | LinePlot |
| 長條圖 | jpgraph_bar.php | BarPlot |
| 圓餅圖 | jpgraph_pie.php | PiePlot / PiePlot3D |
| 甘特圖 | jpgraph_gantt.php | GanttChart |
| 雷達圖 | jpgraph_radar.php | RadarPlot |
$graph->SetCacheDir('/tmp/jpgraph_cache/') 並設定 $graph->SetCacheTime(3600),避免重複運算。jpgraph_scatter.php 散佈圖或前端 Chart.js/Highcharts 分擔渲染。SetFont(FF_SIMSUN, ...)),並確認字體檔存在。