mirror of
https://github.com/chartjs/Chart.js.git
synced 2024-10-08 21:29:07 +02:00
6f7e09540c
Changed var to const/let in the docs
145 lines
3.4 KiB
Markdown
145 lines
3.4 KiB
Markdown
# Integration
|
|
|
|
Chart.js can be integrated with plain JavaScript or with different module loaders. The examples below show how to load Chart.js in different systems.
|
|
|
|
## Script Tag
|
|
|
|
```html
|
|
<script src="path/to/chartjs/dist/chart.js"></script>
|
|
<script>
|
|
const myChart = new Chart(ctx, {...});
|
|
</script>
|
|
```
|
|
|
|
## Common JS
|
|
|
|
```javascript
|
|
const Chart = require('chart.js');
|
|
const myChart = new Chart(ctx, {...});
|
|
```
|
|
|
|
## Bundlers (Webpack, Rollup, etc.)
|
|
|
|
Chart.js 3 is tree-shakeable, so it is necessary to import and register the controllers, elements, scales and plugins you are going to use.
|
|
|
|
For all available imports see the example below.
|
|
|
|
```javascript
|
|
import {
|
|
Chart,
|
|
ArcElement,
|
|
LineElement,
|
|
BarElement,
|
|
PointElement,
|
|
BarController,
|
|
BubbleController,
|
|
DoughnutController,
|
|
LineController,
|
|
PieController,
|
|
PolarAreaController,
|
|
RadarController,
|
|
ScatterController,
|
|
CategoryScale,
|
|
LinearScale,
|
|
LogarithmicScale,
|
|
RadialLinearScale,
|
|
TimeScale,
|
|
TimeSeriesScale,
|
|
Decimation,
|
|
Filler,
|
|
Legend,
|
|
Title,
|
|
Tooltip,
|
|
SubTitle
|
|
} from 'chart.js';
|
|
|
|
Chart.register(
|
|
ArcElement,
|
|
LineElement,
|
|
BarElement,
|
|
PointElement,
|
|
BarController,
|
|
BubbleController,
|
|
DoughnutController,
|
|
LineController,
|
|
PieController,
|
|
PolarAreaController,
|
|
RadarController,
|
|
ScatterController,
|
|
CategoryScale,
|
|
LinearScale,
|
|
LogarithmicScale,
|
|
RadialLinearScale,
|
|
TimeScale,
|
|
TimeSeriesScale,
|
|
Decimation,
|
|
Filler,
|
|
Legend,
|
|
Title,
|
|
Tooltip,
|
|
SubTitle
|
|
);
|
|
|
|
const myChart = new Chart(ctx, {...});
|
|
```
|
|
|
|
A short registration format is also available to quickly register everything.
|
|
|
|
```javascript
|
|
import { Chart, registerables } from 'chart.js';
|
|
Chart.register(...registerables);
|
|
```
|
|
|
|
And finally there is an separate path to do just the above for you, in one line:
|
|
|
|
```javascript
|
|
import Chart from 'chart.js/auto';
|
|
```
|
|
|
|
### Helper functions
|
|
|
|
If you want to use the helper functions, you will need to import these separately from the helpers package and use them as stand-alone functions.
|
|
|
|
Example of [Converting Events to Data Values](../configuration/interactions.md#converting-events-to-data-values) using bundlers.
|
|
|
|
```javascript
|
|
import Chart from 'chart.js/auto';
|
|
import { getRelativePosition } from 'chart.js/helpers';
|
|
|
|
const chart = new Chart(ctx, {
|
|
type: 'line',
|
|
data: data,
|
|
options: {
|
|
onClick: (e) => {
|
|
const canvasPosition = getRelativePosition(e, chart);
|
|
|
|
// Substitute the appropriate scale IDs
|
|
const dataX = chart.scales.x.getValueForPixel(canvasPosition.x);
|
|
const dataY = chart.scales.y.getValueForPixel(canvasPosition.y);
|
|
}
|
|
}
|
|
});
|
|
```
|
|
|
|
## Require JS
|
|
|
|
**Important:** RequireJS [can **not** load CommonJS module as is](https://requirejs.org/docs/commonjs.html#intro), so be sure to require one of the UMD builds instead (i.e. `dist/chart.js`, `dist/chart.min.js`, etc.).
|
|
|
|
```javascript
|
|
require(['path/to/chartjs/dist/chart.min.js'], function(Chart){
|
|
const myChart = new Chart(ctx, {...});
|
|
});
|
|
```
|
|
|
|
**Note:** in order to use the time scale, you need to make sure [one of the available date adapters](https://github.com/chartjs/awesome#adapters) and corresponding date library are fully loaded **after** requiring Chart.js. For this you can use nested requires:
|
|
|
|
```javascript
|
|
require(['chartjs'], function(Chart) {
|
|
require(['moment'], function() {
|
|
require(['chartjs-adapter-moment'], function() {
|
|
new Chart(ctx, {...});
|
|
});
|
|
});
|
|
});
|
|
```
|