JavaScriptを使用して横棒グラフを作成するには、以下の手順を実行します。
- グラフを描画するキャンバス要素を作成します。
- グラフのデータを準備します。
- グラフの描画処理を実装します。
キャンバス要素の作成
まず、グラフを描画するキャンバス要素を作成します。キャンバス要素は、描画用に用意された要素です。
<canvas id="myCanvas" width="500" height="200"></canvas>
このコードでは、idが「myCanvas」の幅500px、高さ200pxのキャンバス要素を作成しています。
データの準備
次に、グラフのデータを準備します。横棒グラフは、縦軸にデータの種類、横軸にデータの値を表示します。
const data = [
{
name: "A",
value: 10
},
{
name: "B",
value: 20
},
{
name: "C",
value: 30
}
];
このコードでは、3つのデータセットを定義しています。各データセットには、名前と値の2つのプロパティがあります。
描画処理の実装
最後に、グラフの描画処理を実装します。描画処理では、キャンバス要素のgetContext()メソッドを使用して、2Dコンテキストを取得します。2Dコンテキストは、キャンバス要素の描画機能を提供するオブジェクトです。
const ctx = document.getElementById("myCanvas").getContext("2d");
2Dコンテキストを取得したら、描画処理を実行します。横棒グラフの描画処理では、以下の手順を実行します。
- 縦軸と横軸の線を描画します。
- 各データセットの棒を描画します。
// 縦軸と横軸の線を描画
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(0, 200);
ctx.stroke();
ctx.beginPath();
ctx.moveTo(0, 0);
ctx.lineTo(500, 0);
ctx.stroke();
// 各データセットの棒を描画
for (const dataSet of data) {
// 棒の幅を計算
const width = 500 / data.length;
// 棒の位置を計算
const x = width * dataSet.index;
const y = 200 - dataSet.value;
// 棒を描画
ctx.fillStyle = "black";
ctx.fillRect(x, y, width, dataSet.value);
}
このコードでは、まず縦軸と横軸の線を描画しています。次に、各データセットの棒を描画しています。棒の幅は、キャンバス要素の幅をデータセットの数で割って計算しています。棒の位置は、横軸の位置と縦軸の位置から計算しています。
このコードを実行すると、以下のグラフが表示されます。
A | 10
B | 20
C | 30
このグラフでは、縦軸にデータの種類「A」「B」「C」を、横軸にデータの値「10」「20」「30」を表示しています。
なお、グラフの表示内容を変更するには、データや描画処理を変更します。