はじめに
Chart.jsはドキュメントも充実しており、とても便利なのですが、面グラフに関しては理解に苦労しましたので、こちらにメモとして残しておきます。
環境
基本HTML
HTMLファイルは下記のようになっているとします。
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="https://cdn.jsdelivr.net/npm/chart.js@2.9.3/dist/Chart.min.js"></script>
</head>
<body>
<div class="canvas-area">
<canvas id="myChart"></canvas>
</div>
<script>
</script>
</body>
</html>
面グラフ基本
基本的には下記の通りです。
面グラフは「下端データセット」と「下端データを参照するデータセット(上端データセット)」の二組からなります。
const ctx = document.getElementById('myChart').getContext('2d');
const myChart = new Chart(ctx, {
type: 'line',
data: {
labels: [
1,2,3,4,5
],
datasets: [{
data: [0,1,2,3,4],
fill:false,
},{
data: [1,4,9,16,25],
fill: "-1",
backgroundColor: 'pink',
}]
}
});
ソースないfillプロパティには下記の値が設定できます
値 |
意味 |
1,2,3,... |
参照データセットの位置を絶対位置で指定する |
"+1", "+2", "-1", "-2",... |
参照データセットの位置を相対位置で指定する |
"start", "origin" |
グラフ下端を参照 |
"end" |
グラフ上端を参照 |
false |
塗りつぶさない(参照元のデータセットに指定すると良い) |
面グラフと普通の折れ線グラフの共存
面グラフと折れ線グラフを共存させる場合は下記の通りです。一度わかってしまえば当たり前なのですが、煮詰まっている間は以外と分からないものです。
var ctx = document.getElementById('myChart').getContext('2d');
var myChart = new Chart(ctx, {
type: 'line',
data: {
labels: [
1,2,3,4,5
],
datasets: [{
data: [0,1,2,3,4],
fill: false,
},{
data: [1,4,9,16,25],
fill: "-1",
backgroundColor: 'pink',
},{
data:[10,11,12,13,14,15],
fill: false,
borderColor:"skyblue"
}]
}
});
終了
結果は下記の通りになります