Plugin
更新日: 2019-05-31
プラグインは、デフォルト動作の変更や、カスタマイズするのに最も効率的な方法です。 プラグインはver2.1.0(グローバルプラグインのみ)で導入され、 ver2.5.0(チャートごとのプラグインとオプション)で拡張されました。
プラグインの利用
プラグインはチャートのインスタンス間で共有することができます。
var plugin = { /* プラグインの実装 */ };
// chart1とchart2で"plugin"プラグインを使用
var chart1 = new Chart(ctx, {
plugins: [plugin]
});
var chart2 = new Chart(ctx, {
plugins: [plugin]
});
// chart3は"plugin"プラグインを不使用
var chart3 = new Chart(ctx, {});プラグインはチャートのplugin設定で直接定義することもできます。(別名inline plugin)
var chart = new Chart(ctx, {
plugins: [{
beforeInit: function(chart, options) {
//..
}
}]
});しかし、この方法は、多くのチャートにカスタマイズを適用する必要がある場合には向いていません。
グローバルプラグイン
プラグインをグローバルに追加することで、全てのチャートに適用することができます。(別名global plugin)
Chart.plugins.register({
// プラグインの実装
});注意:インラインプラグインはグローバルに登録することはできません。
設定
プラグインID
プラグインは設定を有効にするために、一意のIDを定義しなければなりません。
このIDはnpmのパッケージ命名規則に従うべきです。
- .(ドット)、_(アンダースコア)で始めることは出来ません。
- URLセーフでない文字を使用してはいけません。
- 大文字を使用してはいけません。
- 短く、合理的で説明的でなければなりません。
プラグインを公開する予定の場合、 すでにregistryに同じ名前のプラグインが無いか、確認したいかもしれません。 この場合、Chart.jsプラグインのregistryに表示させるために、 パッケージ名の前にchartjs-plugin-を付ける必要があります。
プラグインオプション
プラグインオプションはoptions.pluginsの下にあり、 プラグインID(options.plugins.{plugin-id})にスコープされています。
var chart = new Chart(ctx, {
config: {
foo: { ... }, // チャートの'foo'オプション
plugins: {
p1: {
foo: { ... }, // 'p1'プラグインの'foo'オプション
bar: { ... }
},
p2: {
foo: { ... }, // 'p2'プラグインの'foo'オプション
bla: { ... }
}
}
}
});プラグインの無効化
グローバルプラグインを特定のチャートで無効化するには、 プラグインオプションをfalseに設定する必要があります。
Chart.plugins.register({
id: 'p1',
// ...
});
var chart = new Chart(ctx, {
config: {
plugins: {
p1: false // このチャートでは'p1'プラグインを無効化
}
}
});
プラグインのCoreAPI
利用可能なフック(ver2.7以降)
beforeInitafterInitbeforeUpdate (cancellable)afterUpdatebeforeLayout (cancellable)afterLayoutbeforeDatasetsUpdate (cancellable)afterDatasetsUpdatebeforeDatasetUpdate (cancellable)afterDatasetUpdatebeforeRender (cancellable)afterRenderbeforeDraw (cancellable)afterDrawbeforeDatasetsDraw (cancellable)afterDatasetsDrawbeforeDatasetDraw (cancellable)afterDatasetDrawbeforeEvent (cancellable)afterEventresizedestroy
© 2013 Chart.js is available under the MIT license
このコンテンツはChart.jsドキュメントを翻訳/改変したものです。