#3.x 移行ガイド
Chart.js 3.0 では、多数の重大な変更が導入されています。 Chart.js 2.0 は 2016 年 4 月にリリースされました。それ以来数年間、Chart.js の人気と機能セットが成長するにつれて、私たちはグラフ作成ライブラリをより適切に作成する方法についていくつかの教訓を学びました。パフォーマンスを向上させ、新機能を提供し、保守性を向上させるには、下位互換性を解除する必要がありましたが、メリットに見合った場合にのみ、下位互換性を解除することを目指しました。 v3 の主なハイライトは次のとおりです。
- 大きいパフォーマンスデータ解析をスキップし、ウェブワーカー経由で並行してグラフをレンダリングする機能などの改善
- より優れたデフォルトを備えた追加の構成可能性とスクリプト可能なオプション
- 完全に書き直されたアニメーションシステム
- 多数のバグ修正を加えて書き直されたフィラー プラグイン
- ドキュメントが GitBook から Vuepress に移行されました
- TypeDoc によって生成および検証された API ドキュメント
- CSS インジェクションはもう必要ありません
- 大量のバグ修正
- 木が揺れる
#エンドユーザーの移行
#セットアップとインストール
- 配布ファイルは小文字になりました。例えば:
dist/chart.js
。 - Chart.js は提供しなくなりました。
Chart.bundle.js
とChart.bundle.min.js
。をご覧ください。インストールと統合これらのビルドを使用している場合に Chart.js をセットアップする推奨方法の詳細については、ドキュメントを参照してください。 moment
は npm 依存関係として指定されなくなりました。を使用している場合は、time
またtimeseries
スケールには、次のいずれかを含める必要があります。利用可能なアダプター (新しいウィンドウが開きます)および対応する日付ライブラリ。ビルドからモーメントを除外する必要はなくなりました。- の
Chart
提供されたキャンバス/コンテキストがすでに使用されている場合、コンストラクターはエラーをスローします - Chart.js 3 はツリーシェイク可能です。したがって、それをとして使用している場合は、
npm
プロジェクト内のモジュールを使用し、この機能を利用したい場合は、使用するコントローラー、エレメント、スケール、プラグインをインポートして登録する必要があります。インポートできるすべての項目のリストについては、「統合。電話する必要はありませんregister
Chart.js を経由してインポートする場合script
タグまたはからauto
パスをとして登録しますnpm
この場合、ツリーシェイクの利点は得られません。コンポーネントを登録する例を次に示します。
import { Chart, LineController, LineElement, PointElement, LinearScale, Title } from `chart.js`
Chart.register(LineController, LineElement, PointElement, LinearScale, Title);
const chart = new Chart(ctx, {
type: 'line',
// data: ...
options: {
plugins: {
title: {
display: true,
text: 'Chart Title'
}
},
scales: {
x: {
type: 'linear'
},
y: {
type: 'linear'
}
}
}
})
#グラフの種類
horizontalBar
グラフの種類が削除されました。横棒グラフは、新しいツールを使用して構成できます。indexAxis
オプション
#オプション
に渡される構成オプションに多くの変更が加えられました。Chart
コンストラクタ。これらの変更は以下に文書化されています。
#一般的な変更
- インデックス可能なオプションがループするようになりました。
backgroundColor: ['red', 'green']
交互になります'red'
/'green'
データポイントが 3 つ以上ある場合。 - オブジェクト データの入力プロパティを自由に指定できるようになりました。を参照してください。データ構造詳細については。
- ほとんどのオプションは、デフォルトとマージするのではなく、プロキシを利用して解決されます。さまざまなコンテキストに対してさまざまな解決ルートを簡単に有効にすることに加えて、スクリプト可能なオプションで他の解決されたオプションを使用できるようになります。
- 何らかの理由で無効にされない限り、オプションはデフォルトでスクリプト化可能でインデックス化可能です。
- スクリプト可能なオプションは、同じコンテキスト内の他のオプションにアクセスするための 2 番目のパラメーターとしてオプション リゾルバーを受け取ります。
- 一致するものが以前に見つからなかった場合、解決は上位のスコープに落ちます。見るオプション詳細については。
#具体的な変更点
elements.rectangle
今でしょelements.bar
hover.animationDuration
現在、で構成されていますanimation.active.duration
responsiveAnimationDuration
現在、で構成されていますanimation.resize.duration
- 極域
elements.arc.angle
はラジアンではなく度で設定されるようになりました。 - 極域
startAngle
オプションは現在と一致していますRadar
, 0 が一番上で、値は度単位です。デフォルトはから変更されます-½π
に0
。 - ドーナツ
rotation
オプションは度単位になり、0 が頂点になります。デフォルトはから変更されます-½π
に0
。 - ドーナツ
circumference
オプションは度単位になりました。デフォルトはから変更されます2π
に360
。 - ドーナツ
cutoutPercentage
に名前が変更されましたcutout
ピクセルを数値として、パーセントを文字列として受け入れます。%
。 scale
を支持してオプションが削除されましたoptions.scales.r
(または他のスケール ID、axis: 'r'
)- 82904e1f-a173-44e7-9a80-2cc64206762dアレイが削除されました。体重計が直接設定されるようになりました。
options.scales
オブジェクト キーがスケール ID であるオブジェクト。 scales.[x/y]Axes.barPercentage
データセット オプションに移動されましたbarPercentage
scales.[x/y]Axes.barThickness
データセット オプションに移動されましたbarThickness
scales.[x/y]Axes.categoryPercentage
データセット オプションに移動されましたcategoryPercentage
scales.[x/y]Axes.maxBarThickness
データセット オプションに移動されましたmaxBarThickness
scales.[x/y]Axes.minBarLength
データセット オプションに移動されましたminBarLength
scales.[x/y]Axes.scaleLabel
に名前が変更されましたscales[id].title
scales.[x/y]Axes.scaleLabel.labelString
に名前が変更されました383f2b17-1ベッド-45e6-838c-c2568757bc79scales.[x/y]Axes.ticks.beginAtZero
に名前が変更されましたscales[id].beginAtZero
scales.[x/y]Axes.ticks.max
に名前が変更されましたscales[id].max
scales.[x/y]Axes.ticks.min
に名前が変更されましたscales[id].min
- 40c7fff0-f4a7-48d8-ae41-8170ebeb7c5に名前が変更されました
scales[id].reverse
scales.[x/y]Axes.ticks.suggestedMax
に名前が変更されましたscales[id].suggestedMax
scales.[x/y]Axes.ticks.suggestedMin
に名前が変更されましたscales[id].suggestedMin
scales.[x/y]Axes.ticks.unitStepSize
取り除かれた。使用scales[id].ticks.stepSize
scales.[x/y]Axes.ticks.userCallback
に名前が変更されましたscales[id].ticks.callback
scales.[x/y]Axes.time.format
に名前が変更されましたscales[id].time.parser
scales.[x/y]Axes.time.max
に名前が変更されましたscales[id].max
scales.[x/y]Axes.time.min
に名前が変更されましたscales[id].min
scales.[x/y]Axes.zeroLine*
軸のオプションが削除されました。代わりに、スクリプト可能なスケール オプションを使用してください。- データセットオプション
steppedLine
取り除かれた。使用stepped
- チャートオプション
showLines
に名前が変更されましたshowLine
データセット オプションと一致するようにします。 - チャートオプション
startAngle
に移動されましたradial
スケールのオプション。 - チャート インスタンスで使用されるプラットフォーム クラスをオーバーライドするには、次のように渡します。
platform: PlatformClass
構成オブジェクト内。クラスのインスタンスではなく、クラスを渡す必要があることに注意してください。 aspectRatio
ドーナツ チャート、円グラフ、polarArea グラフ、およびレーダー チャートのデフォルトは 1 です。TimeScale
読みませんt
デフォルトではオブジェクト データから削除されなくなりました。デフォルトのプロパティは次のとおりですx
またy
、向きに応じて。見るデータ構造デフォルトを変更する方法の詳細については、tooltips
名前空間はに名前変更されましたtooltip
プラグイン名と一致するようにlegend
、title
とtooltip
名前空間はから移動されましたoptions
にoptions.plugins
。tooltips.custom
に名前が変更されましたplugins.tooltip.external
#デフォルト
global
名前空間がから削除されましたdefaults
。それでChart.defaults.global
今でしょChart.defaults
- データセット コントローラーのデフォルトは次の場所に再配置されました
overrides
。例えばChart.defaults.line
今でしょChart.overrides.line
default
プレフィックスがデフォルトから削除されました。例えばChart.defaults.global.defaultColor
今でしょChart.defaults.color
defaultColor
に分割されましたcolor
、borderColor
とbackgroundColor
defaultFontColor
に名前が変更されましたcolor
defaultFontFamily
に名前が変更されましたfont.family
defaultFontSize
に名前が変更されましたfont.size
defaultFontStyle
に名前が変更されましたfont.style
defaultLineHeight
に名前が変更されましたfont.lineHeight
- 水平バーのデフォルトのツールチップ モードがから変更されました
'index'
に'nearest'
縦棒グラフと一致させるには legend
、title
とtooltip
名前空間はから移動されましたChart.defaults
にChart.defaults.plugins
。elements.line.fill
デフォルトから変更されましたtrue
にfalse
。- 折れ線グラフはデフォルトをオーバーライドしなくなりました
interaction
モード。デフォルトはから変更されます'index'
に'nearest'
。
#天秤
スケールの構成オプションは、v3 での最大の変更点です。のxAxes
とyAxes
配列が削除され、軸オプションはスケール ID によってキー設定された個別のスケールになりました。
以下の v2 構成は、新しい v3 構成とともに示されています
options: {
scales: {
xAxes: [{
id: 'x',
type: 'time',
display: true,
title: {
display: true,
text: 'Date'
},
ticks: {
major: {
enabled: true
},
font: function(context) {
if (context.tick && context.tick.major) {
return {
weight: 'bold',
color: '#FF0000'
};
}
}
}
}],
yAxes: [{
id: 'y',
display: true,
title: {
display: true,
text: 'value'
}
}]
}
}
そして今、v3 では次のようになります。
options: {
scales: {
x: {
type: 'time',
display: true,
title: {
display: true,
text: 'Date'
},
ticks: {
major: {
enabled: true
},
color: (context) => context.tick && context.tick.major && '#FF0000',
font: function(context) {
if (context.tick && context.tick.major) {
return {
weight: 'bold'
};
}
}
}
},
y: {
display: true,
title: {
display: true,
text: 'value'
}
}
}
}
- タイムスケールオプション
distribution: 'series'
削除され、新しいスケール タイプが追加されましたtimeseries
代わりに導入されました - 時間スケールでは、
autoSkip
他のスケールとの一貫性を保つために、デフォルトで有効になるようになりました
#アニメーション
アニメーション システムは Chart.js v3 で完全に書き直されました。各プロパティを個別にアニメーション化できるようになりました。参照してくださいアニメーション詳細についてはドキュメントを参照してください。
#カスタマイズ性
custom
要素の属性が削除されました。スクリプト可能なオプションを使用してください- の
hover
スクリプト可能なオプションのプロパティcontext
オブジェクトの名前が変更されましたactive
データラベルプラグインと合わせて調整します。
#インタラクション
- DRY 構成を可能にするために、一般的な対話オプションのルート オプション スコープが追加されました。
options.hover
とoptions.plugins.tooltip
現在、両方ともから延長されていますoptions.interaction
。デフォルトは次のように定義されています。defaults.interaction
レベルなので、デフォルトではホバーとツールチップのインタラクションは同じモードなどを共有します。 interactions
グラフ領域に制限され、オーバーフローが許可されるようになりました{mode: 'label'}
と置き換えられました{mode: 'index'}
{mode: 'single'}
と置き換えられました{mode: 'nearest', intersect: true}
modes['X-axis']
と置き換えられました{mode: 'index', intersect: false}
options.onClick
グラフ領域に限定されるようになりましたoptions.onClick
とoptions.onHover
今すぐ受け取ってくださいchart
インスタンスを第 3 引数として指定するoptions.onHover
今はラッピングされたものを受け取りますevent
最初のパラメータとして。以前の最初のパラメータ値には、次の方法でアクセスできます。event.native
。options.hover.onHover
削除されました。使用してくださいoptions.onHover
。
#ダニ
options.gridLines
に名前が変更されましたoptions.grid
options.gridLines.offsetGridLines
に名前が変更されましたoptions.grid.offset
。options.gridLines.tickMarkLength
に名前が変更されましたoptions.grid.tickLength
。options.ticks.fixedStepSize
はもう使用されていません。使用options.ticks.stepSize
。options.ticks.major
とoptions.ticks.minor
ティックフォントのスクリプト可能なオプションに置き換えられました。Chart.Ticks.formatters.linear
に名前が変更されましたChart.Ticks.formatters.numeric
。options.ticks.backdropPaddingX
とoptions.ticks.backdropPaddingY
と置き換えられましたoptions.ticks.backdropPadding
ラジアルリニアスケールで。
#ツールチップ
xLabel
とyLabel
削除されました。使ってくださいlabel
とformattedValue
- の
filter
オプションが呼び出されたときに追加のパラメータが渡されるようになり、メソッド シグネチャが必要になります。function(tooltipItem, index, tooltipItems, data)
- の
custom
コールバックは、次のコンテキスト オブジェクトを受け取ります。tooltip
とchart
プロパティ - ツールヒント オプションに関連するツールヒント モデルのすべてのプロパティは、
options
財産。 - コールバックにはもう与えられません
data
パラメータ。ツールチップ項目パラメータには、代わりにチャートとデータセットが含まれます - ツールチップ項目の
index
パラメータの名前が次のように変更されましたdataIndex
とvalue
に名前が変更されました1982419b-96be-4735-a2e6-2eada85b6255 - の
xPadding
とyPadding
オプションが 1 つに統合されましたpadding
物体
#開発者の移行
Chart.js 3 のエンドユーザーの移行は非常に簡単ですが、開発者の移行はより複雑になる可能性があります。 #dev でサポートを求めてください。スラック (新しいウィンドウが開きます)移行に関するヒントが役立つ場合は、チャンネルをご覧ください。
大きく変わった点は次のとおりです。
- 完全に書き直され、よりパフォーマンスの高いアニメーション システムが追加されました。
Element._model
とElement._view
は使用されなくなり、プロパティは要素に直接設定されるようになりました。メソッドを使用する必要がありますgetProps
などのほとんどのメソッド内でこれらのプロパティにアクセスするにはinXRange
/inYRange
とgetCenterPoint
。ぜひご覧くださいChart.js が提供する要素 (新しいウィンドウが開きます)たとえば。- コントローラーで要素を構築する場合、次の呼び出しが推奨されるようになりました。
updateElement
要素のプロパティを提供します。などの方法もありますgetSharedOptions
とincludeOptions
冗長な計算をスキップするために追加されました。ぜひご覧くださいChart.js が提供するコントローラー (新しいウィンドウが開きます)たとえば。
- Scales には新しい解析 API が導入されました。この API はユーザー データを取得し、より標準的な形式に変換します。例えば。ユーザーは数値データを
string
そしてそれをに変換しますnumber
必要に応じて。以前は、これはチャートがレンダリングされるときにその場で実行されていました。現在では、ユーザーが正しい形式でデータを提供した場合に、パフォーマンスを向上させるためにスキップする機能が事前に実行されるようになりました。次のような標準データ形式を使用している場合1E26F636-7452-492E-8B82-EDFF02222AFA/y
何もする必要がないかもしれません。カスタム データ形式を使用している場合は、次の解析メソッドの一部をオーバーライドする必要があります。core.datasetController.js
。例は次のとおりです。chartjs-chart-financial (新しいウィンドウが開きます)を使用します。{o, h, l, c}
データ形式。
コントローラーにいくつかの変更が加えられ、よりわかりやすくなりましたが、すべてのコントローラーに影響します。
- オプション:
global
不必要で、場合によっては一貫性がないため、デフォルトの名前空間から削除されました- データセットのデフォルトは、その逆ではなく、グラフ タイプ オプションの下に表示されるようになりました。これは、下位互換性のために 2.x で導入されたときは実行できませんでした。これを修正すると、新しいチャート開発者が遭遇した最大の障害が解消されます。
- スケールのデフォルト オプションは、エンド ユーザーの移行セクションで説明されているように更新する必要があります (例:
x
それ以外のxAxes
とy
それ以外のyAxes
)
updateElement
に変更されましたupdateElements
そして、以下で説明する新しいメソッド シグネチャを持ちます。これにより、すべての要素に共通する計算の再利用が容易になり、関数呼び出しの数が削減されるなど、パフォーマンスが向上します。
#削除されました
次のプロパティとメソッドが削除されました。
#チャートから削除されました
Chart.animationService
Chart.active
Chart.borderWidth
Chart.chart.chart
Chart.Bar
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.Bubble
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.Chart
Chart.Controller
Chart.Doughnut
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.innerRadius
現在はドーナツ、パイ、およびpolarAreaコントローラ上に存在しますChart.lastActive
Chart.Legend
に移動されましたChart.plugins.legend._element
そして非公開にしましたChart.Line
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.LinearScaleBase
現在はインポートする必要があり、外部からはアクセスできません。Chart
物体Chart.offsetX
Chart.offsetY
Chart.outerRadius
現在はドーナツ、パイ、およびpolarAreaコントローラ上に存在しますChart.plugins
と置き換えられましたChart.registry
。プラグインのデフォルトが追加されましたChart.defaults.plugins[id]
。Chart.plugins.register
に置き換えられましたChart.register
。Chart.PolarArea
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.prototype.generateLegend
Chart.platform
。含まれていたのはdisableCSSInjection
。 CSS は v3 に挿入されることはありません。Chart.PluginBase
Chart.Radar
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.radiusLength
Chart.scaleService
と置き換えられましたChart.registry
。スケールのデフォルトが追加されましたChart.defaults.scales[type]
。Chart.Scatter
。新しいチャートは次の方法で作成されます。new Chart
そして適切なサービスを提供するtype
パラメータChart.types
Chart.Title
に移動されましたChart.plugins.title._element
そして非公開にしましたChart.Tooltip
ツールチップ プラグインによって提供されるようになりました。ポジショナーには次からアクセスできます。tooltipPlugin.positioners
ILayoutItem.minSize
#データセット コントローラーから削除されました
BarController.getDatasetMeta().bar
DatasetController.addElementAndReset
DatasetController.createMetaData
DatasetController.createMetaDataset
DoughnutController.getRingIndex
#要素から削除されました
Element.getArea
Element.height
Element.hidden
チャート レベルのステータスに置き換えられ、次のように使用できます。getDataVisibility(index)
/toggleDataVisibility(index)
Element.initialize
Element.inLabelRange
Line.calculatePointY
#ヘルパーから削除されました
helpers.addEvent
helpers.aliasPixel
helpers.arrayEquals
helpers.configMerge
helpers.findIndex
helpers.findNextWhere
helpers.findPreviousWhere
helpers.extend
。使用Object.assign
その代わりhelpers.getValueAtIndexOrDefault
。使用helpers.resolve
その代わり。helpers.indexOf
helpers.lineTo
helpers.longestText
非公開にされましたhelpers.max
helpers.measureText
非公開にされましたhelpers.min
helpers.nextItem
helpers.niceNum
helpers.numberOfLabelLines
helpers.previousItem
helpers.removeEvent
helpers.roundedRect
helpers.scaleMerge
helpers.where
#レイアウトから削除されました
Layout.defaults
#秤から外した状態
LinearScaleBase.handleDirectionalChanges
LogarithmicScale.minNotZero
Scale.getRightValue
Scale.longestLabelWidth
Scale.longestTextCache
今はプライベートですScale.margins
今はプライベートですScale.mergeTicksOptions
Scale.ticksAsNumbers
Scale.tickValues
今はプライベートですTimeScale.getLabelCapacity
今はプライベートですTimeScale.tickFormatFunction
今はプライベートです
#プラグインから削除 (凡例、タイトル、ツールチップ)
IPlugin.afterScaleUpdate
。使用afterLayout
その代わりLegend.margins
今はプライベートです- 伝説
onClick
、onHover
、 とonLeave
オプションは暗黙的に凡例を 3 番目の引数として受け取るようになりました。b3193cef-6df9-43dc-82e6-2de0a53847e1 - 伝説
onClick
、onHover
、 とonLeave
オプションはラップされたものを受け取るようになりましたevent
最初のパラメータとして。以前の最初のパラメータ値には、次の方法でアクセスできます。event.native
。 Title.margins
今はプライベートです- ツールチップ項目の
x
とy
属性は次のように置き換えられましたelement
。使用できますelement.x
とelement.y
またelement.tooltipPosition()
その代わり。
#パブリック API の削除
次のパブリック API が削除されました。
getElementAtEvent
と置き換えられますchart.getElementsAtEventForMode(e, 'nearest', { intersect: true }, false)
getElementsAtEvent
と置き換えられますchart.getElementsAtEventForMode(e, 'index', { intersect: true }, false)
getElementsAtXAxis
と置き換えられますchart.getElementsAtEventForMode(e, 'index', { intersect: false }, false)
getDatasetAtEvent
と置き換えられますchart.getElementsAtEventForMode(e, 'dataset', { intersect: true }, false)
#プライベート API の削除
次のプライベート API が削除されました。
Chart._bufferedRender
Chart._updating
Chart.data.datasets[datasetIndex]._meta
DatasetController._getIndexScaleId
DatasetController._getIndexScale
DatasetController._getValueScaleId
DatasetController._getValueScale
Element._ctx
Element._model
Element._view
LogarithmicScale._valueOffset
TimeScale.getPixelForOffset
TimeScale.getLabelWidth
Tooltip._lastActive
#名前変更
次のプロパティは、v3 開発中に名前が変更されました。
Chart.Animation.animationObject
に名前が変更されましたChart.Animation
Chart.Animation.chartInstance
に名前が変更されましたChart.Animation.chart
Chart.canvasHelpers
と合併されましたChart.helpers
Chart.elements.Arc
に名前が変更されましたChart.elements.ArcElement
Chart.elements.Line
に名前が変更されましたChart.elements.LineElement
Chart.elements.Point
に名前が変更されましたChart.elements.PointElement
Chart.elements.Rectangle
に名前が変更されましたChart.elements.BarElement
Chart.layoutService
に名前が変更されましたChart.layouts
Chart.pluginService
に名前が変更されましたChart.plugins
helpers.callCallback
に名前が変更されましたhelpers.callback
helpers.drawRoundedRectangle
に名前が変更されましたhelpers.roundedRect
helpers.getValueOrDefault
に名前が変更されましたhelpers.valueOrDefault
LayoutItem.fullWidth
に名前が変更されましたLayoutItem.fullSize
Point.controlPointPreviousX
に名前が変更されましたPoint.cp1x
Point.controlPointPreviousY
に名前が変更されましたPoint.cp1y
Point.controlPointNextX
に名前が変更されましたPoint.cp2x
Point.controlPointNextY
に名前が変更されましたPoint.cp2y
Scale.calculateTickRotation
に名前が変更されましたScale.calculateLabelRotation
Tooltip.options.legendColorBackgroupd
に名前が変更されましたTooltip.options.multiKeyBackground
#プライベート API の名前が変更されました
以下にリストされているプライベート API の名前が変更されました。
BarController.calculateBarIndexPixels
に名前が変更されましたBarController._calculateBarIndexPixels
BarController.calculateBarValuePixels
に名前が変更されましたBarController._calculateBarValuePixels
BarController.getStackCount
に名前が変更されましたBarController._getStackCount
BarController.getStackIndex
に名前が変更されましたBarController._getStackIndex
BarController.getRuler
に名前が変更されましたBarController._getRuler
Chart.destroyDatasetMeta
に名前が変更されましたChart._destroyDatasetMeta
Chart.drawDataset
に名前が変更されましたChart._drawDataset
Chart.drawDatasets
に名前が変更されましたChart._drawDatasets
Chart.eventHandler
に名前が変更されましたChart._eventHandler
Chart.handleEvent
に名前が変更されましたChart._handleEvent
Chart.initialize
に名前が変更されましたChart._initialize
Chart.resetElements
に名前が変更されましたChart._resetElements
Chart.unbindEvents
に名前が変更されましたChart._unbindEvents
Chart.updateDataset
に名前が変更されましたChart._updateDataset
Chart.updateDatasets
に名前が変更されましたChart._updateDatasets
Chart.updateLayout
に名前が変更されましたChart._updateLayout
DatasetController.destroy
に名前が変更されましたDatasetController._destroy
DatasetController.insertElements
に名前が変更されましたDatasetController._insertElements
DatasetController.onDataPop
に名前が変更されましたDatasetController._onDataPop
DatasetController.onDataPush
に名前が変更されましたDatasetController._onDataPush
DatasetController.onDataShift
に名前が変更されましたDatasetController._onDataShift
DatasetController.onDataSplice
に名前が変更されましたDatasetController._onDataSplice
DatasetController.onDataUnshift
に名前が変更されましたDatasetController._onDataUnshift
DatasetController.removeElements
に名前が変更されましたDatasetController._removeElements
DatasetController.resyncElements
に名前が変更されましたDatasetController._resyncElements
LayoutItem.isFullWidth
に名前が変更されましたLayoutItem.isFullSize
RadialLinearScale.setReductions
に名前が変更されましたRadialLinearScale._setReductions
RadialLinearScale.pointLabels
に名前が変更されましたRadialLinearScale._pointLabels
Scale.handleMargins
に名前が変更されましたScale._handleMargins
#かわった
このセクションにリストされている API は、バージョン 2 から署名または動作が変更されています。
#スケールの変化
Scale.getLabelForIndex
に置き換えられましたscale.getLabelForValue
Scale.getPixelForValue
必要なパラメータは 1 つだけになりました。のためにTimeScale
このパラメータはエポックからのミリ秒である必要があります。パフォーマンスの最適化として、データ ポイントのインデックスを与えるオプションの 2 番目のパラメーターを取ることができます。
#ティック単位で変更
Scale.afterBuildTicks
他のコールバックのようなパラメータはありませんScale.buildTicks
ティックオブジェクトを返すことが期待されるようになりましたScale.convertTicksToLabels
に名前が変更されましたgenerateTickLabels
。入力として与えられたティックに label プロパティを設定することが期待されるようになりました。Scale.ticks
文字列の代わりにオブジェクトが含まれるようになりました- とき
autoSkip
オプションが有効になっている場合、Scale.ticks
すべてのティックではなく、スキップされていないティックのみが含まれるようになりました。 - ティックは常に単調増加順に生成されるようになりました。
#時間スケールでの変化
getValueForPixel
エポックからのミリ秒を返すようになりました
#コントローラーの変更点
#コアコントローラー
- 最初のパラメータは
updateHoverStyle
は、を含むオブジェクトの配列になりました。element
、datasetIndex
、 とindex
- サインとか、
resize
変わった、最初のsilent
パラメータが削除されました。
#データセットコントローラー
updateElement
と置き換えられましたupdateElements
ここで更新する要素を取得し、start
索引、count
、 とmode
setHoverStyle
とremoveHoverStyle
ここでさらにdatasetIndex
とindex
#インタラクションの変化
- インタラクション モードのメソッドは、
element
、datasetIndex
、 とindex
#レイアウト変更
ILayoutItem.update
戻り値がなくなりました
#ヘルパーの変更
すべてのヘルパーがフラットな階層で公開されるようになりました。Chart.helpers.canvas.clipArea
->Chart.helpers.clipArea
#キャンバスヘルパー
- 2 番目のパラメータは、
drawPoint
は完全なオプション オブジェクトになったので、style
、rotation
、 とradius
明示的に渡されなくなりました helpers.getMaximumHeight
に置き換えられましたhelpers.dom.getMaximumSize
helpers.getMaximumWidth
に置き換えられましたhelpers.dom.getMaximumSize
helpers.clear
に名前が変更されましたhelpers.clearCanvas
そして今はかかりますcanvas
そしてオプションでctx
パラメータとして。helpers.retinaScale
オプションの 3 番目のパラメータを受け入れますforceStyle
、現在のキャンバス スタイルを強制的にオーバーライドします。forceRatio
もう元には戻らないwindow.devicePixelRatio
代わりに、デフォルトでは1
。
#プラットフォームの変更
Chart.platform
はチャートで使用されるプラットフォーム オブジェクトではなくなりました。すべてのチャート インスタンスに個別のプラットフォーム インスタンスが存在するようになりました。Chart.platforms
2 つの使用可能なプラットフォーム クラスを含むオブジェクトです。BasicPlatform
とDomPlatform
。も含まれていますBasePlatform
、すべてのプラットフォームが拡張する必要があるクラス。- 渡されたキャンバスが次のインスタンスである場合、
OffscreenCanvas
、BasicPlatform
自動的に使用されます。 isAttached
メソッドがプラットフォームに追加されました。
#IPluginインターフェースの変更
- すべてのプラグイン フックには、次の 3 つの引数を持つ統一署名があります。
chart
、args
とoptions
。これは、これらのフックの署名が変更されることを意味します。beforeInit
、afterInit
、reset
、beforeLayout
、afterLayout
、beforeRender
、afterRender
、beforeDraw
、afterDraw
、beforeDatasetsDraw
、afterDatasetsDraw
、beforeEvent
、afterEvent
、resize
、destroy
。 afterDatasetsUpdate
、afterUpdate
、beforeDatasetsUpdate
、 とbeforeUpdate
今すぐ受け取りますargs
オブジェクトを 2 番目の引数として指定します。options
argument は常に最後なので、2 位から 3 位に移動しました。afterEvent
とbeforeEvent
今すぐラッピングされたものを受け取りますevent
としてevent
2 番目の引数のプロパティ。ネイティブ イベントは以下から入手できます。args.event.native
。- イニシャル
resize
はもう黙っていません。という意味ですresize
イベントは次の間で発生する可能性がありますbeforeInit
とafterInit
- 新しいフック:
install
、start
、stop
、 とuninstall
afterEvent
設定によってレンダリングが必要な変更について通知する必要がありますargs.changed
本当のこと。なぜならargs
すべてのプラグインと共有されるため、false ではなく true にのみ設定する必要があります。