编程

PHP 的零依赖 SVG 图标库

195 2024-11-28 02:53:00

maantje/charts 包是一个由  Jamie Schouten 开发的零依赖 SVG 图标库。它有一个直观的 API,你可以在 PHP 中直接使用来创建 SVG,而无需引入其他依赖项:

use Maantje\Charts\Bar\Bar;
use Maantje\Charts\Bar\Bars;
use Maantje\Charts\Chart;
 
$chart = new Chart(
    series: [
        new Bars(
            bars: [
                new Bar(name: 'Jan', value: 222301),
                new Bar(name: 'Feb', value: 189242),
                new Bar(name: 'Mar', value: 144922),
            ],
        ),
    ],
);
 
echo $chart->render();

该示例中的条形图将渲染成如下 SVG:

Simple bar chart example

你可以通过克隆仓库并运行 examples composer 脚本来生成示例 SVG 文件:

cd charts
composer install
composer run examples
open examples/output/

包特性

  • 简单直观的 API
  • 轻量,无额外依赖项
  • 支持多种图表类型:折线图、条形图、堆叠图和混合图
  • 可自定义及可扩展
  • 输出纯 SVG,允许:
    • 嵌入到 PDF 中 (可用于报告)

源码: maantje/charts