Charts is a zero-dependency PHP library for generating SVG charts. It enables easy creation of SVG-based charts directly from PHP, with no additional dependencies required.
- Simple, intuitive API for chart creation
- Lightweight, with no external dependencies
- Supports various chart types: line charts, bar charts, stacked charts, and mixed charts
- Fully customizable and extendable
- Outputs pure SVG, allowing for:
- Embedding in PDFs, view example PDF report
To get started, install the package via composer:
composer require maantje/chartsBelow are some examples of the types of charts you can create using this library. Click on the links to view the source code for each example.
- Example Usage With mPDF
- Simple Line Chart
- Curved Line Chart
- Step Line Chart
- Area Line Chart
- Bar Chart
- Stacked Bar Chart
- Grouped Bar Chart
- Advanced Line Chart
- Advanced Bar Chart
- Mixed Chart
- Pie Chart
📄 View PDF document
View source
You can create different types of charts using the provided classes. Below are examples of how to create a simple bar chart and a line chart.
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(x: 0, y: 0), new Point(x: 100, y: 4), new Point(x: 200, y: 12), new Point(x: 300, y: 8), ], ), new Line( points: [ [0, 0], [100, 4], [200, 12], [300, 8], ], ), ], ), ], ); echo $chart->render();You can add annotations to your charts for better visualization.
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'), ], ), // ... );The MIT License (MIT). Please see License File for more information.