PHP使用Jpgraph库绘制3D饼图的完整代码示例

Felix
Felix
发布时间:2026-10-13| 6人浏览过
原创

在PHP应用中集成数据可视化功能时,Jpgraph 是一个经典且稳定的绘图库。本文将演示如何使用 Jpgraph 的 PiePlot3D 类生成带有阴影效果和自定义图例的 3D 饼状图,涵盖从类引入到最终渲染的全流程代码。

实现原理与核心类

Jpgraph 提供了强大的面向对象绘图接口。绘制 3D 饼图主要依赖以下三个核心文件:

  • src/jpgraph.php:Jpgraph 主库文件,初始化基础图形上下文。
  • src/jpgraph_pie.php:普通二维饼图支持。
  • src/jpgraph_pie3d.php:三维饼图扩展,提供 PiePlot3D 类。

通过组合这些类,可以创建一个带有立体感的统计图表,适用于年度收支、市场份额等场景的数据展示。

完整代码实现

以下是绘制 3D 饼图的具体 PHP 代码。该脚本定义了数据源,创建了图形画布,并配置了标题、阴影、中心位置及图例。

<?php 
// 1. 引入必要的库文件
include ("src/jpgraph.php"); 
include ("src/jpgraph_pie.php"); 
include ("src/jpgraph_pie3d.php"); 

// 2. 定义数据源(例如:各月份的数值)
$data = array(19,23,34,38,45,67,71,78,85,87,90,96); 

// 3. 创建画布:宽度400像素,高度300像素
$graph = new PieGraph(400,300); 

// 4. 启用背景阴影效果
$graph->SetShadow(); 

// 5. 设置标题及中文字体
$graph->title->Set("年度收支表"); 
// FF_SIMSUN 对应宋体,FS_BOLD 为粗体
$graph->title->SetFont(FF_SIMSUN,FS_BOLD); 

// 6. 创建 3D 饼图对象并绑定数据
$pieplot = new PiePlot3D($data); 

// 7. 设置饼图中心位置(0.4表示略微偏左)
$pieplot->SetCenter(0.4); 

// 8. 设置图例:使用语言包中的短月名作为标签
$pieplot->SetLegends($gDateLocale->GetShortMonth()); 

// 9. 将饼图添加到画布
$graph->Add($pieplot); 

// 10. 输出图像
$graph->Stroke(); 
?>

第1步:配置环境与引入依赖

目的:加载 Jpgraph 库的核心组件。
动作:确保服务器已安装 GD 库,并将 jpgraph.php 及相关 pie 扩展文件放置在 src/ 目录下。若项目结构不同,请调整 include 路径。

第2步:定义数据结构

目的:确定饼图切片的比例数据。
参数:$data 数组中的每个元素代表一个扇区的大小。本例中使用 12 个数字,分别对应一年中的 12 个月份数值。

第3步:构建图形对象与样式设置

入口:PieGraph 构造函数。
关键动作:
- SetShadow():为整个图表添加投影,增强视觉深度。
- SetFont(FF_SIMSUN, FS_BOLD):强制使用中文字体显示标题,防止中文乱码。注意:服务器上需存在对应的 SIMSUN.TTC 或类似宋体字体文件。
- SetCenter(0.4):调整 3D 饼图的透视中心点,使立体效果更自然。

第4步:生成图例与渲染输出

操作:SetLegends($gDateLocale->GetShortMonth()) 自动获取当前系统语言环境下的一月、二月等短文本作为图例,无需手动输入字符串。
完成判断:调用 $graph->Stroke() 后,脚本直接将二进制图像数据发送至浏览器,页面将显示最终的 3D 饼状图。

下图展示了上述代码运行后的实际效果,包含清晰的月度标签与立体视觉:

注意事项与排错

  1. 字体缺失报错:若标题显示为方块,请检查服务器字体目录(通常在 /usr/share/fonts/)是否安装中文字体,并修改 FF_SIMSUN 为实际安装的字体常量(如 FF_FONT1 等预定义字体或自定义路径)。
  2. GD 库限制:确认 PHP 已启用 gd 扩展,否则无法生成图像。
  3. 输出缓冲:Jpgraph 直接输出 Header,确保在此之前没有任何 HTML 输出或空白字符,否则会导致图像损坏。

以上就是 PHP 使用 Jpgraph 绘制 3D 饼状图的详细内容,更多关于 PHP 数据可视化的技巧资料请关注本站其它相关文章!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。