A Laravel wrapper for apex charts library.
Use composer.
composer require marineusde/larapex-charts
In your controller add:
$chart = (new LarapexChart)->setTitle('Posts')
->setDataset([150, 120])
->setLabels(['Published', 'No Published']);
Remember to import the Facade to your controller with
use marineusde\LarapexCharts\Facades\LarapexChart;
Or importing the LarapexChart class:
use marineusde\LarapexCharts\LarapexChart;
Then in your view (Blade file) add:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Chart Sample</title>
</head>
<body>
{!! $chart->container() !!}
<script src="https://github.com/marineusde/larapex-charts/raw/master/{{ $chart->cdn() }}"></script>
{{ $chart->script() }}
</body>
</html>
The $chart must be an object of LarapexChart, not the controller or class that create it.
$chart = (new AreaChart)
->setTitle('Total Users Monthly')
->setSubtitle('From January to March')
->setXAxisOptions(new XAxisOption([
'Jan', 'Feb', 'Mar'
]))
->setDataset([
[
'name' => 'Active Users',
'data' => [250, 700, 1200]
]
]);
You can create a variety of charts including: Line, Area, Bar, Horizontal Bar, Heatmap, pie, donut and Radialbar.
Its better to use vite (or other plugins of this kind) for your projects, cause you cant get problems with version conflicts of apex charts:
import {defineConfig, normalizePath} from 'vite';
import { viteStaticCopy } from "vite-plugin-static-copy";
export default defineConfig({ plugins: [ viteStaticCopy({ targets: [ { src: 'node_modules/apexcharts/dist/apexcharts.js', dest: 'js' } ] }) ] });
run: npm run build
now you can use the js file in your blade files:
## Contributing
The author is Henning Zimmermann.
## License
[MIT](./LICENSE.md)