当前位置:

首页 > 编程开发 > PHP编写图形绘制

PHP编写图形绘制

本文介绍了如何在PHP中使用pChart创建图形。第一个是条形图,第二个是样条图,最后一个是来自Mysql的直方图。设置你的环境在使用pChart之前,你首先需要安装php5。你可以从SourceForge获得PHP5作为XAMPP5.5.28的一部分。当你有XAMPP5.5.28时,从他们的官方网站下载pChart。之后,将pChart提取到XAMPP5.5.28的htdocs文件夹中。打开pChart文件夹,其结构应如下图所示:注意:class文件夹包含我们将使用的类定义。fonts文件夹包含我们可以

本文介绍了如何在 PHP 中使用 pChart 创建图形。第一个是条形图,第二个是样条图,最后一个是来自 Mysql 的直方图。


设置你的环境

在使用 pChart 之前,你首先需要安装 php5。你可以从 SourceForge 获得 PHP5 作为 XAMPP 5.5.28 的一部分。

当你有 XAMPP 5.5.28 时,从他们的官方网站下载 pChart。之后,将 pChart 提取到 XAMPP 5.5.28 的 htdocs 文件夹中。

打开 pChart 文件夹,其结构应如下图所示:

在 PHP 中绘制图形

注意:

  • class 文件夹包含我们将使用的类定义。
  • fonts 文件夹包含我们可以在图表中使用的字体文件。

完成 pChart 设置后,你现在可以开始绘图了。


在 PHP 中使用 pChart 绘制条形图

使用 pChart 绘制条形图的 PHP 代码必须包含 class 文件夹中的三个文件。这些文件是:

  • pData.class.php
  • pImage.class.php
  • pDraw.class.php

在这些文件中,pData.class.php 允许你加载将在图表中使用的数据。你需要 pDraw.class.php 来绘制图表。

接下来,pImage.class.php 将让你在 WEB 浏览器中呈现图表。你必须使用 PHP required_once() 包含这些文件。

你可以使用相对路径包含它们或定义一个 PCART_PATH 常量。然后使用 set_include_path(),你可以为 pChart 类使用短目录名称。

话虽如此,我们可以使用以下步骤创建带有 pChart 的条形图:

  • 定义 PCART_PATH 常量。
  • 使用 set_include_path() 作为 pChart 类的短目录名称。
  • 使用 required_once() 包含 pChart 类。
  • 创建一个新的 pData 对象。
  • 创建你的数据或将其导入。
  • 使用 addPoints 方法将数据添加到 pData 对象。
  • 使用 pImage 对象为图表创建图像。
  • 设置图表的字体。
  • 使用 pData 的 setGraphArea 方法设置图形区域。
  • 使用 pData 的 drawScale 和 drawBarChart 方法绘制刻度和条形图。
  • 发送标头信息以告诉浏览器你正在发送图像。
  • 使用 pData 的 Render 方法渲染图像。确保将 null 传递给 Render 方法。

以下是这些步骤的实现。以下是 Firefox 101.0 中的输出图像。

addPoints($sample_data_set);
// Create the pChart Image. The first two argument
// to the pImage object are the width and height
// of the rendered chart.
$pchart_image = new pImage(500, 300, $pchart_data);
// Set the font.
$pchart_image->setFontProperties(
["FontName" => PCHART_PATH . "/fonts/ForGotte.ttf",
"FontSize" => 16]
);
// Define the graph area. The first two arguments
// are the x-coordinates. While the last two are
// the y-coordinates.
$pchart_image->setGraphArea(35, 25, 475, 275);
$pchart_image->drawScale();
$pchart_image->drawBarChart();
// Render the chart as a PNG image
header("Content-Type: image/png");
$pchart_image->Render(null);
?>

输出:

使用 pChart 绘制的条形图


在 PHP 中使用 pChart 绘制样条图

绘制样条图的过程与绘制条形图的过程相同,不同之处在于你使用 drawSplineChart 方法绘制样条图。此外,你可以选择不将图表作为图像发送。

相反,你可以选择 pData 的 Stroke 方法在 Web 浏览器中呈现图表。

以下代码使用 pChart 绘制样条图。此外,我们使用的是 fonts 目录中的 MankSans.ttf 字体。

addPoints([4,2,1,4]);
// Create the pChart Image. The first two argument
// to the pImage object are the width and height
// of the rendered chart.
$pchart_image = new pImage(700, 220, $pchart_data);
// Set the font.
$pchart_image->setFontProperties(
["FontName" => PCHART_PATH . "/fonts/MankSans.ttf",
"FontSize"=> 18]
);
// Define the graph area. The first two arguments
// are the x-coordinates. While the last two are
// the y-coordinates.
$pchart_image->setGraphArea(60, 40, 670, 190);
$pchart_image->drawScale();
$pchart_image->drawSplineChart();
// Draw the chart as a stroke.
$pchart_image->Stroke();
?>

输出:

用 pChart 绘制的样条图


在 PHP 中从 mysql 数据库中绘制柱状图

绘制直方图遵循与条形图和样条图类似的步骤。但是,有一些差异值得指出。

首先,直方图的数据将来自 Mysql。这意味着你应该有一个包含一些示例数据的数据库。

其次,你将使用表列名称作为直方图上的轴。为此,你将使用一些 pData 方法,例如 setAbscissa、setSeriesOnAxis 和 setAxisName。

现在,创建一个名为 weather_measurements 的数据库,然后使用以下命令创建一个表:

CREATE TABLE measures (
timestamp INT NOT NULL DEFAULT '0',
temperature INT NOT NULL,
humidity INT NOT NULL
)

使用以下命令将样本数据插入 measures 表中:

INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 20, 50);
INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 18, 44);
INSERT INTO measures (timestamp, temperature, humidity) VALUES (UNIX_TIMESTAMP(), 19, 70);

确保样本数据在数据库中,然后使用以下命令创建直方图:

addPoints($timestamp,"Timestamp");
$pchart_data->addPoints($temperature,"Temperature");
$pchart_data->addPoints($humidity,"Humidity");
// Put the table column on the appropriate axis
$pchart_data->setAbscissa("Timestamp");
$pchart_data->setSerieOnAxis("Humidity", 1);
$pchart_data->setXAxisName("Time");
$pchart_data->setXAxisDisplay(AXIS_FORMAT_TIME,"H:i");
// Dedicate the first and second axis to
// Temperature and Humidity.
$pchart_data->setAxisName(0, "Temperature");
$pchart_data->setAxisUnit(0, "°C");
$pchart_data->setAxisName(1, "Humidity");
$pchart_data->setAxisUnit(0, "%");
// Create the pChart Image. The first two argument
// to the pImage object are the width and height
// of the rendered chart.
$pchart_image = new pImage(500, 300, $pchart_data);
// Set the font.
$pchart_image->setFontProperties(
["FontName" => PCHART_PATH . "/fonts/verdana.ttf",
"FontSize"=> 11]
);
// Set the graph area.
$pchart_image->setGraphArea(55,25, 475,275);
$pchart_image->drawScale();
$pchart_image->drawBarChart();
// Draw the chart as a stroke.
$pchart_image->Stroke();
?>

输出(你的时间会有所不同):

使用 pChart 绘制的直方图

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
作者最新文章
编程开发 后端开发 PHP编程
相关文章 更多
接口分页查询怎么设置page和size参数
接口分页查询怎么设置page和size参数

遇到接口分页数据对不上?本文解析page和size参数的核心设置规则,包括起始索引选择、默认值配置及异常处理,助你避开常见的分页陷阱。

Java发送post请求发送json数据的实现方法与代码示例
Java发送post请求发送json数据的实现方法与代码示例

深入解析Java发送JSON格式POST请求的实现机制,对比原生API与第三方库的代码差异,提供可复制的代码示例,并探讨超时设置、编码处理及微服务场景下的例外情况。

php解析json内嵌json数据教程及取值方法
php解析json内嵌json数据教程及取值方法

本文详解PHP中json_decode处理嵌套JSON数据的机制,对比对象与数组模式的取值差异,提供防止空指针错误的健壮代码示例,帮助开发者快速定位解析失败原因。

mysql添加字段语句及具体操作方法详解
mysql添加字段语句及具体操作方法详解

遇到需要给现有MySQL表增加新列的情况?本文详细解析ALTER TABLE ADD COLUMN语句的标准写法,包括如何在指定位置插入字段、设置默认值以及批量操作的技巧,助你避开锁表风险,轻松完成结构变更。

python 雷达图开发环境搭建与验证:后端开发者实操指南
python 雷达图开发环境搭建与验证:后端开发者实操指南

针对后端开发者的 python 雷达图实操指南。包含基于官方文档的环境准备、venv 虚拟环境创建、pip 依赖管理及验证命令,提供清晰的排错决策图与适用边界说明。

python 截图:环境准备、实操流程与故障排查指南
python 截图:环境准备、实操流程与故障排查指南

面向后端开发者的 python 截图技术文章,涵盖从环境检查、虚拟环境创建到依赖管理的完整流程。提供基于官方文档的验证命令与决策路径,帮助读者快速定位并解决截图任务中的环境问题。

python编程语言:环境准备、实操流程与验证边界
python编程语言:环境准备、实操流程与验证边界

详解 python编程语言 的基础概念与实操步骤。涵盖版本检查、venv 虚拟环境隔离、pip 依赖安装及 sys.executable 验证方法,提供清晰的决策路径与适用边界说明。

python面试准备:环境配置、实操流程与验证命令
python面试准备:环境配置、实操流程与验证命令

为后端开发者提供“python面试”相关的技术准备步骤,包括版本检查、虚拟环境创建、依赖安装及验证命令,严格遵循Python官方文档规范。

python随机数开发避坑:环境隔离、标准库调用与验证流程
python随机数开发避坑:环境隔离、标准库调用与验证流程

详解 python随机数 开发中的环境准备与验证流程。涵盖 venv 虚拟环境创建、pip 依赖管理及 sys.executable 路径检查,帮助开发者规避版本冲突,确保代码在隔离环境中稳定运行。

python自学:后端开发者的环境隔离与依赖验证路径
python自学:后端开发者的环境隔离与依赖验证路径

面向后端开发者的 python自学实操指南。涵盖 Python 官方概念界定、虚拟环境创建、依赖安装验证及常见排错路径,提供可执行的 Bash 命令与决策流程图。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

PDF教程
PDF教程

正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

Mac软件 更多
Postman macOS版
Postman macOS版
Mac

Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。

Docker Desktop macOS版
Docker Desktop macOS版
Mac

Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。

Android Studio macOS版
Android Studio macOS版
Mac

Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。

WINDOWS 更多
PixPix 网页版
PixPix 网页版
Windows

PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。

Postman Windows版
Postman Windows版
Windows

Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等

Docker Desktop Windows版
Docker Desktop Windows版
Windows

Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。