maantje / charts
PHP 中的 SVG 图表
0.1.1
2024-09-04 22:35 UTC
Requires (Dev)
- laravel/pint: ^1.17
- pestphp/pest: ^2.35
- phpstan/phpstan: ^1.12
README
警告
此库处于积极开发中。API 不稳定,可能随时更改。请自行承担风险使用。
Charts - SVG 图表渲染
Charts 是一个零依赖的 PHP 库,用于生成 SVG 图表。它允许直接从 PHP 创建基于 SVG 的图表,无需任何其他依赖。
特性
- 简单的、直观的图表创建 API
- 轻量级,无外部依赖
- 支持各种图表类型:折线图、条形图、堆叠图和混合图
- 完全可定制和扩展
- 输出纯 SVG,允许
- 嵌入 PDF 中(理想用于报告)
安装
要开始使用,请通过 composer 安装此包
composer require maantje/charts
使用示例
以下是一些使用此库可以创建的图表类型的示例。点击链接查看每个示例的源代码。
简单的折线图
简单的条形图
简单的堆叠图
高级折线图
高级条形图
混合图表
使用
创建图表
您可以使用提供的类创建不同类型的图表。下面是创建简单条形图和折线图的示例。
简单条形图
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();
简单折线图
use Maantje\Charts\Chart; use Maantje\Charts\Line\Line; use Maantje\Charts\Line\Lines; use Maantje\Charts\Line\Point; $chart = new Chart( series: [ new Lines( lines: [ new Line( points: [ new Point(y: 0, x: 0), new Point(y: 4, x: 100), new Point(y: 12, x: 200), new Point(y: 8, x: 300), ], ), ], ), ], ); echo $chart->render();
注释
您可以为图表添加注释,以获得更好的可视化效果。
use Maantje\Charts\Annotations\PointAnnotation; use Maantje\Charts\YAxis; $chart = new Chart( yAxis: new YAxis( annotations: [ new PointAnnotation(x: 200, y: 120, label: 'Important Point'), ], ), // ... );
许可证
MIT 许可证(MIT)。有关更多信息,请参阅 许可证文件。