簡単実装:Charts.cssでテーブルタグをグラフやチャートにできる!

てっちゃん
てっちゃん

テーブルタグをカンタンにグラフにできるフレームワークをご紹介します!

現在棒グラフと折れ線グラフのみですが、そのうち円グラフなどもできるようになるかも??

デモページ

Step01:Charts.cssの準備

ファイルのダウンロード

GitHubからcharts.cssをダウンロードしてきます
https://github.com/ChartsCSS/charts.css

Charts.css

設置

ダウンロードしてきたcharts.cssを<head>~</head>内で読み込みます。

ファイルのパスは任意です。都度変更してください。

<link rel="stylesheet" href="charts/charts.css">

準備が整いました!とってもカンタンですね~

Step02:グラフの元になるテーブル準備

Charts.cssはテーブルで組まれたデータをグラフにするのでHTMLを準備しましょう

HTML:コンテンツ内

01.コンテンツ内のテーブルタグにclass="charts-css"を追加します

02.グラフのtdにサイズを追加していきます
【例】style="--size:calc(30 / 100);"

サンプル:【Chart Type】Bar
デモページ

<table class="charts-css bar show-labels">
	<caption> Single Dataset Table </caption>
	<thead>
		<tr>
			<th scope="col"> Month </th>
			<th scope="col"> Progress </th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<th scope="row"> Jan </th>
			<td style="--size:calc(30 / 100);"><span class="data"> 30 </span></td>
		</tr>
		<tr>
		<th scope="row"> Feb </th>
			<td style="--size:calc(50 / 100);"><span class="data"> 50 </span></td>
		</tr>
		<tr>
		<th scope="row"> Mar </th>
			<td style="--size:calc(80 / 100);"><span class="data"> 80 </span></td>
		</tr>
		<tr>
		<th scope="row"> Apr </th>
			<td style="--size:calc(100 / 100);"><span class="data"> 100 </span></td>
		</tr>
		<tr>
		<th scope="row"> May </th>
			<td style="--size:calc(65 / 100);"><span class="data"> 65 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jun </th>
			<td style="--size:calc(45 / 100);"><span class="data"> 45 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jul </th>
			<td style="--size:calc(15 / 100);"><span class="data"> 15 </span></td>
		</tr>
		<tr>
		<th scope="row"> Aug </th>
			<td style="--size:calc(32 / 100);"><span class="data"> 32 </span></td>
		</tr>
		<tr>
		<th scope="row"> Sep </th>
			<td style="--size:calc(60 / 100);"><span class="data"> 60 </span></td>
		</tr>
		<tr>
		<th scope="row"> Oct </th>
			<td style="--size:calc(90 / 100);"><span class="data"> 90 </span></td>
		</tr>
		<tr>
		<th scope="row"> Nov </th>
			<td style="--size:calc(55 / 100);"><span class="data"> 55 </span></td>
		</tr>
		<tr>
		<th scope="row"> Dec </th>
			<td style="--size:calc(40 / 100);"><span class="data"> 40 </span></td>
		</tr>
	</tbody>
</table>

はい!完成です
あっという間にできちゃいましたね~

現在使えるビルダーも用意されているので下記URLで作りたいグラフのタイプを選択して設置しましょう^^
https://chartscss.org/examples/chart-builder/

その他のグラフについて

縦棒グラフや折れ線グラフの場合、テーブルに高さ指定が必要になるのでCSSで指定してあげてください

サンプル:【Chart Type】Column

デモページ

<table class="charts-css column show-labels">
	<caption> Single Dataset Table </caption>
	<thead>
		<tr>
			<th scope="col"> Month </th>
			<th scope="col"> Progress </th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<th scope="row"> Jan </th>
			<td style="--size:calc(30 / 100);"><span class="data"> 30 </span></td>
		</tr>
		<tr>
		<th scope="row"> Feb </th>
			<td style="--size:calc(50 / 100);"><span class="data"> 50 </span></td>
		</tr>
		<tr>
		<th scope="row"> Mar </th>
			<td style="--size:calc(80 / 100);"><span class="data"> 80 </span></td>
		</tr>
		<tr>
		<th scope="row"> Apr </th>
			<td style="--size:calc(100 / 100);"><span class="data"> 100 </span></td>
		</tr>
		<tr>
		<th scope="row"> May </th>
			<td style="--size:calc(65 / 100);"><span class="data"> 65 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jun </th>
			<td style="--size:calc(45 / 100);"><span class="data"> 45 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jul </th>
			<td style="--size:calc(15 / 100);"><span class="data"> 15 </span></td>
		</tr>
		<tr>
		<th scope="row"> Aug </th>
			<td style="--size:calc(32 / 100);"><span class="data"> 32 </span></td>
		</tr>
		<tr>
		<th scope="row"> Sep </th>
			<td style="--size:calc(60 / 100);"><span class="data"> 60 </span></td>
		</tr>
		<tr>
		<th scope="row"> Oct </th>
			<td style="--size:calc(90 / 100);"><span class="data"> 90 </span></td>
		</tr>
		<tr>
		<th scope="row"> Nov </th>
			<td style="--size:calc(55 / 100);"><span class="data"> 55 </span></td>
		</tr>
		<tr>
		<th scope="row"> Dec </th>
			<td style="--size:calc(40 / 100);"><span class="data"> 40 </span></td>
		</tr>
	</tbody>
</table>

サンプル:【Chart Type】Area

折れ線グラフの場合、グラフのtdにスタート位置を追加していきます
【例】style="--start:calc(30 / 100);"

デモページ

<table class="charts-css area show-labels">
	<caption> Single Dataset Table </caption>
	<thead>
		<tr>
			<th scope="col"> Month </th>
			<th scope="col"> Progress </th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<th scope="row"> Jan </th>
			<td style="--start:0; --size:calc(30 / 100);"><span class="data"> 30 </span></td>
		</tr>
		<tr>
		<th scope="row"> Feb </th>
			<td style="--start:calc(30 / 100); --size:calc(50 / 100);"><span class="data"> 50 </span></td>
		</tr>
		<tr>
		<th scope="row"> Mar </th>
			<td style="--start:calc(50 / 100); --size:calc(80 / 100);"><span class="data"> 80 </span></td>
		</tr>
		<tr>
		<th scope="row"> Apr </th>
			<td style="--start:calc(80 / 100); --size:calc(100 / 100);"><span class="data"> 100 </span></td>
		</tr>
		<tr>
		<th scope="row"> May </th>
			<td style="--start:calc(100 / 100); --size:calc(65 / 100);"><span class="data"> 65 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jun </th>
			<td style="--start:calc(65 / 100); --size:calc(45 / 100);"><span class="data"> 45 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jul </th>
			<td style="--start:calc(45 / 100); --size:calc(15 / 100);"><span class="data"> 15 </span></td>
		</tr>
		<tr>
		<th scope="row"> Aug </th>
			<td style="--start:calc(15 / 100); --size:calc(32 / 100);"><span class="data"> 32 </span></td>
		</tr>
		<tr>
		<th scope="row"> Sep </th>
			<td style="--start:calc(32 / 100); --size:calc(60 / 100);"><span class="data"> 60 </span></td>
		</tr>
		<tr>
		<th scope="row"> Oct </th>
			<td style="--start:calc(60 / 100); --size:calc(90 / 100);"><span class="data"> 90 </span></td>
		</tr>
		<tr>
		<th scope="row"> Nov </th>
			<td style="--start:calc(90 / 100); --size:calc(55 / 100);"><span class="data"> 55 </span></td>
		</tr>
		<tr>
		<th scope="row"> Dec </th>
			<td style="--start:calc(55 / 100); --size:calc(40 / 100);"><span class="data"> 40 </span></td>
		</tr>
	</tbody>
</table>

サンプル:【Chart Type】Line

デモページ

<table class="charts-css line show-labels">
	<caption> Single Dataset Table </caption>
	<thead>
		<tr>
			<th scope="col"> Month </th>
			<th scope="col"> Progress </th>
		</tr>
	</thead>
	<tbody>
		<tr>
			<th scope="row"> Jan </th>
			<td style="--start:0; --size:calc(30 / 100);"><span class="data"> 30 </span></td>
		</tr>
		<tr>
		<th scope="row"> Feb </th>
			<td style="--start:calc(30 / 100); --size:calc(50 / 100);"><span class="data"> 50 </span></td>
		</tr>
		<tr>
		<th scope="row"> Mar </th>
			<td style="--start:calc(50 / 100); --size:calc(80 / 100);"><span class="data"> 80 </span></td>
		</tr>
		<tr>
		<th scope="row"> Apr </th>
			<td style="--start:calc(80 / 100); --size:calc(100 / 100);"><span class="data"> 100 </span></td>
		</tr>
		<tr>
		<th scope="row"> May </th>
			<td style="--start:calc(100 / 100); --size:calc(65 / 100);"><span class="data"> 65 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jun </th>
			<td style="--start:calc(65 / 100); --size:calc(45 / 100);"><span class="data"> 45 </span></td>
		</tr>
		<tr>
		<th scope="row"> Jul </th>
			<td style="--start:calc(45 / 100); --size:calc(15 / 100);"><span class="data"> 15 </span></td>
		</tr>
		<tr>
		<th scope="row"> Aug </th>
			<td style="--start:calc(15 / 100); --size:calc(32 / 100);"><span class="data"> 32 </span></td>
		</tr>
		<tr>
		<th scope="row"> Sep </th>
			<td style="--start:calc(32 / 100); --size:calc(60 / 100);"><span class="data"> 60 </span></td>
		</tr>
		<tr>
		<th scope="row"> Oct </th>
			<td style="--start:calc(60 / 100); --size:calc(90 / 100);"><span class="data"> 90 </span></td>
		</tr>
		<tr>
		<th scope="row"> Nov </th>
			<td style="--start:calc(90 / 100); --size:calc(55 / 100);"><span class="data"> 55 </span></td>
		</tr>
		<tr>
		<th scope="row"> Dec </th>
			<td style="--start:calc(55 / 100); --size:calc(40 / 100);"><span class="data"> 40 </span></td>
		</tr>
	</tbody>
</table>

関連記事