iamjohndev/chartinphp

一个使用 Chart.js 库渲染图表的 PHP 类。

dev-main 2023-04-21 07:37 UTC

This package is auto-updated.

Last update: 2024-09-21 10:32:49 UTC


README

ChartinPHP 是一个 PHP 库,允许您使用 ApexCharts 库渲染交互式图表。它提供了一个简单方便的方法,在 PHP 应用程序中创建各种类型的图表。

功能

  • 支持多种图表类型,包括折线图、柱状图、饼图等。
  • 提供简单直观的 PHP API 用于生成图表选项和数据。
  • 使用流行的 ApexCharts JavaScript 库渲染图表。
  • 可自定义图表选项和数据以满足您的特定需求。
  • 支持在同一页面上使用唯一 ID 渲染多个图表。

要求

  • PHP 8.0 或更高版本
  • ApexCharts JavaScript 库

安装

  1. 下载或克隆 ChartinPHP 库到您的 PHP 项目中。
  2. 使用 require_once 语句在您的 PHP 脚本中包含 ChartinPHP.php 文件。
  3. 确保您的 HTML 文件中包含 ApexCharts JavaScript 库。您可以从 ApexCharts 网站下载或从 CDN 中包含它。

通过 Composer

composer require iamjohndev/chartinphp:dev-main

使用

创建图表

要创建图表,您需要使用图表选项和数据实例化 ChartinPHP 类。以下是一个示例

// Include the ChartinPHP class file
require_once 'ChartinPHP.php';

use iamjohndev\ChartinPHP;

// Chart options
$chartOptions = array(
    'chart' => array(
        'type' => 'line',
        'height' => 350
    ),
    'series' => array(
        array('name' => 'Series 1', 'data' => array(10, 20, 30, 40, 50))
    ),
    'xaxis' => array(
        'categories' => array('January', 'February', 'March', 'April', 'May')
    )
);

// Chart data
$chartData = array(
    array('month' => 'January', 'value' => 10),
    array('month' => 'February', 'value' => 20),
    array('month' => 'March', 'value' => 30),
    array('month' => 'April', 'value' => 40),
    array('month' => 'May', 'value' => 50)
);

// Instantiate the ChartinPHP class
$chart = new ChartinPHP($chartOptions, $chartData);

// Render the chart
$chart->renderChart();

自定义图表选项和数据

您可以通过使用 ChartinPHP 类的 getChartOptions()、setChartOptions()、getChartData() 和 setChartData() 方法来自定义图表选项和数据。以下是一个示例

// Get the current chart options
$currentOptions = $chart->getChartOptions();

// Update the chart options
$currentOptions['chart']['type'] = 'bar';
$currentOptions['chart']['height'] = 400;

// Set the updated chart options
$chart->setChartOptions($currentOptions);

// Get the current chart data
$currentData = $chart->getChartData();

// Update the chart data
$newData = array(
    array('month' => 'June', 'value' => 60),
    array('month' => 'July', 'value' => 70),
    array('month' => 'August', 'value' => 80),
    array('month' => 'September', 'value' => 90),
    array('month' => 'October', 'value' => 100)
);
$chart->setChartData($newData);

// Render the updated chart
$chart->renderChart();

在同一页面上渲染多个图表

您可以通过创建具有唯一 ID 的 ChartinPHP 类的多个实例在同一页面上渲染多个图表。以下是一个示例

// Chart 1 options and data
$chart1Options = array(
    // chart options for chart 1
);

$chart1Data = array(
    // chart data for chart 1
);

// Instantiate chart 1
$chart1 = new ChartinPHP($chart1Options, $chart1Data);

// Render chart 1
$chart1->renderChart('chart1'); // specify unique ID 'chart1'

// Chart 2 options and data
$chart2Options = array(
    // chart options for chart 2
);

$chart2Data = array(
    // chart data for chart 2
);

// Instantiate chart 2
$chart2 = new ChartinPHP($chart2Options, $chart2Data);

// Render chart 2
$chart2->renderChart('chart2'); // specify unique ID 'chart2'

确保在调用 renderChart() 方法时为每个图表指定唯一的 ID,以便它们可以在同一页面上单独渲染。

在图表选项中覆盖图表类型

如果您想覆盖初始图表选项中指定的图表类型,可以使用 ChartinPHP 类的 setChartType() 方法。以下是一个示例

// Set initial chart type as 'line'
$chartOptions = array(
    'chart' => array(
        'type' => 'line'
    ),
    // other chart options
);

// Instantiate the ChartinPHP class with initial chart options
$chart = new ChartinPHP($chartOptions, $chartData);

// Override chart type to 'bar'
$chart->setChartType('bar');

// Render the chart with overridden chart type
$chart->renderChart();

这将根据覆盖的图表类型渲染图表,而不是初始图表选项中指定的折线图。

结论

ChartinPHP 为 PHP 应用程序中生成交互式图表提供了方便的方法。您可以自定义图表选项、数据,甚至覆盖图表类型以满足您的特定需求。通过支持在同一页面上渲染多个图表,ChartinPHP 允许您为您的网络应用程序创建动态和吸引人的可视化效果。

有关更多信息,请参阅 ApexCharts 文档和 ChartinPHP GitHub 仓库。