chart.jsで作成された既存のチャートにトレンドラインを追加するソリューションを何時間も探していました
Chart.jsには対数近似曲線しか追加できないと思いますか?
トレンドラインを最初から描きたくはありませんが、これら2つのラインの既存のデータに基づいて2つのトレンドラインを追加します。このフィドルの例を参照してください:
THANK YOU
https://jsfiddle.net/blueagency/p88mx3nw/
よろしくお願いします。
現在、chart.jsにはトレンドライン機能がまったくありません(対数でさえありません)。 Common Scale Configuration セクションの最後にあるカスタムティックフォーマットの例と混同されていたのではないでしょうか。
ただし、 chartjs-plugin-annotation プラグインを使用してグラフにトレンドラインを描画することはできますが、ラインの正しい位置を計算するために独自のロジックを実装する必要があることに注意してください(その後アノテーションプラグインを使用して実際に描画するだけです)。
プラグインの使用方法を示す例を次に示します(プラグインは、チャートに追加できるannotation
プロパティのセットを提供しますoptions
。次に、を計算する関数を作成する必要があります。トレンドラインを作成し、その結果を使用して注釈value
およびendValue
プロパティを設定します。
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: [0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.55, 0.6, 0.65, 0.7, 0.75, 0.8, 0.85, 0.9, 0.95, 1],
datasets: [{
label: 'Dataset 1',
borderColor: window.chartColors.blue,
borderWidth: 2,
fill: false,
data: [19304,13433,9341,6931,5169, 3885,2927,2159,1853,1502, 1176,911,724,590,491, 400,335,280,239,200]
}]
},
options: {
responsive: true,
title: {
display: true,
text: 'Chart.js Drsw Line on Chart'
},
tooltips: {
mode: 'index',
intersect: true
},
annotation: {
annotations: [{
type: 'line',
mode: 'horizontal',
scaleID: 'y-axis-0',
value: 2225,
endValue: 0,
borderColor: 'rgb(75, 192, 192)',
borderWidth: 4,
label: {
enabled: true,
content: 'Trendline',
yAdjust: -16,
}
}]
}
}
});
これで実際の動作を確認できます codepen 。
chartjs-plugin-trendline
は、Chart.jsにプラグインする直線トレンドラインを提供します。
NPM: https://www.npmjs.com/package/chartjs-plugin-trendline/v/0.1.1
ダウンロード: https://www.jsdelivr.com/package/npm/chartjs-plugin-trendline
使用法は非常に簡単です-データセットに以下を追加するだけです:
datasets: [{
// Other configurations
// ...
trendlineLinear: {
style: "rgb(43 ,66 ,255, 0.3)",
lineStyle: "dotted|solid",
width: 2
}
}]