当前位置:首页 > PHP

php实现图表统计

2026-02-15 23:49:21PHP

PHP 实现图表统计的方法

使用 GD 库生成基础图表

PHP 的 GD 库可以创建简单的图表。以下是一个生成柱状图的示例代码:

<?php
$width = 400;
$height = 300;
$image = imagecreatetruecolor($width, $height);

$white = imagecolorallocate($image, 255, 255, 255);
$black = imagecolorallocate($image, 0, 0, 0);
$red = imagecolorallocate($image, 255, 0, 0);

imagefill($image, 0, 0, $white);

$data = [30, 50, 70, 90, 110];
$barWidth = 50;
$maxValue = max($data);

for ($i = 0; $i < count($data); $i++) {
    $barHeight = ($data[$i] / $maxValue) * ($height - 50);
    imagefilledrectangle($image, $i * $barWidth + 30, $height - $barHeight - 20, 
                         ($i + 1) * $barWidth, $height - 20, $red);
}

header('Content-Type: image/png');
imagepng($image);
imagedestroy($image);
?>

使用第三方库(如 JpGraph)

JpGraph 是一个专业的 PHP 图表库,支持多种图表类型:

php实现图表统计

  1. 下载并安装 JpGraph
  2. 创建折线图示例:
<?php
require_once ('jpgraph/src/jpgraph.php');
require_once ('jpgraph/src/jpgraph_line.php');

$ydata = [12, 15, 22, 19, 26];
$graph = new Graph(350, 250);
$graph->SetScale("textlin");
$graph->title->Set('Monthly Sales');

$line = new LinePlot($ydata);
$graph->Add($line);

$graph->Stroke();
?>

集成 JavaScript 图表库

通过 PHP 输出数据给前端 JavaScript 图表库(如 Chart.js):

<?php
$data = [
    'labels' => ['January', 'February', 'March', 'April', 'May'],
    'datasets' => [[
        'label' => 'Sales',
        'data' => [65, 59, 80, 81, 56],
        'backgroundColor' => 'rgba(75, 192, 192, 0.2)',
        'borderColor' => 'rgba(75, 192, 192, 1)'
    ]]
];
?>

<canvas id="myChart"></canvas>
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
    var ctx = document.getElementById('myChart').getContext('2d');
    var chart = new Chart(ctx, {
        type: 'bar',
        data: <?php echo json_encode($data); ?>,
        options: { responsive: true }
    });
</script>

使用 Google Charts API

PHP 准备数据,通过 Google Charts 显示:

php实现图表统计

<?php
$chartData = [
    ['Month', 'Sales'],
    ['Jan', 1000],
    ['Feb', 1170],
    ['Mar', 660]
];
$jsonData = json_encode($chartData);
?>

<div id="piechart" style="width: 500px; height: 300px;"></div>
<script src="https://www.gstatic.com/charts/loader.js"></script>
<script>
    google.charts.load('current', {'packages':['corechart']});
    google.charts.setOnLoadCallback(drawChart);

    function drawChart() {
        var data = google.visualization.arrayToDataTable(<?php echo $jsonData; ?>);
        var chart = new google.visualization.PieChart(document.getElementById('piechart'));
        chart.draw(data);
    }
</script>

数据库数据可视化

从 MySQL 数据库获取数据生成图表:

<?php
$conn = new mysqli("localhost", "user", "password", "database");
$result = $conn->query("SELECT product, sales FROM sales_data");

$chartData = [];
while ($row = $result->fetch_assoc()) {
    $chartData[] = [$row['product'], (int)$row['sales']];
}

array_unshift($chartData, ['Product', 'Sales']);
?>

使用 SVG 创建矢量图表

PHP 生成 SVG 格式的图表:

<?php
header('Content-Type: image/svg+xml');
$data = [30, 70, 50, 90];
$width = 300;
$height = 200;
$max = max($data);

echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<svg width="'.$width.'" height="'.$height.'" viewBox="0 0 '.$width.' '.$height.'">';
echo '<rect width="100%" height="100%" fill="#f8f9fa"/>';

foreach ($data as $i => $value) {
    $barHeight = ($value / $max) * ($height - 20);
    $x = $i * 60 + 20;
    $y = $height - $barHeight;
    echo '<rect x="'.$x.'" y="'.$y.'" width="40" height="'.$barHeight.'" fill="#007bff"/>';
}

echo '</svg>';
?>

选择合适的方法取决于项目需求、图表复杂度和性能要求。简单的静态图表可使用 GD 库或 SVG,复杂交互式图表推荐结合前端库实现。

标签: 图表php
分享给朋友:

相关文章

php实现websocket

php实现websocket

PHP 实现 WebSocket WebSocket 是一种在单个 TCP 连接上进行全双工通信的协议。PHP 可以通过多种方式实现 WebSocket 功能,以下是几种常见的方法: 使用 Ratc…

php实现

php实现

PHP 实现的基本方法 PHP 是一种服务器端脚本语言,广泛用于 Web 开发。以下是 PHP 实现的一些常见方法。 变量与数据类型 PHP 变量以 $ 开头,支持多种数据类型: $nam…

php购物车实现

php购物车实现

PHP购物车实现方法 使用PHP实现购物车功能可以通过多种方式完成,以下是几种常见的实现方法: Session存储购物车数据 利用PHP的$_SESSION超全局变量存储购物车数据是最简单的方法。…

php搜索功能实现

php搜索功能实现

实现基本的PHP搜索功能 使用MySQL数据库和PHP实现简单的关键词搜索功能。需要确保数据库中有可供搜索的表和数据。 // 连接数据库 $conn = new mysqli('localhost'…

php实现统计

php实现统计

PHP 实现统计功能 在 PHP 中实现统计功能通常涉及数据的收集、处理和展示。以下是一些常见的统计实现方法: 数据库数据统计 通过 SQL 查询可以直接从数据库中获取统计结果: $conn =…

php 实现类

php 实现类

PHP 类的基本实现 在 PHP 中,类通过 class 关键字定义,后跟类名和一对花括号。类名通常遵循大驼峰命名法(如 ClassName)。以下是基本语法: class ClassName {…