【amCharts 4】簡単な折れ線グラフの作り方

amCharts 4 の使い方がよー分からんかったので、少しずつ使い方を勉強していく過程のメモです。円グラフ棒グラフときたらこれかなーと思って折れ線になりました🤔

今回作るもの

最低限のコードで作れる折れ線グラフです。

※下のCodePen埋め込みが表示されない場合は、一度CodePenのサイトにアクセスすると表示されるようです🙄

全体的なコード

HTML

<div id="chartdiv"></div>

CSS

#chartdiv {
  width: 100vw;
  height: 100vh;
}

JavaScript

// 1. インスタンスの生成
const chart = am4core.create('chartdiv', am4charts.XYChart)

// 2. データの設定
chart.data = [
  {
    date: new Date(2020, 4),
    count: 10
  },
  {
    date: new Date(2020, 5),
    count: 12
  },
  {
    date: new Date(2020, 6),
    count: 5
  }
]

// 3. X軸の設定(日付)
const dateAxis = chart.xAxes.push(new am4charts.DateAxis())

// 4. Y軸の設定(値)
const valueAxis = chart.yAxes.push(new am4charts.ValueAxis())

// 5. データの紐付け
const series = chart.series.push(new am4charts.LineSeries())
series.dataFields.valueY = 'count'
series.dataFields.dateX = 'date'

1. インスタンスの生成

棒グラフと同じくXYChartのクラスを指定しています。X軸の種類(カテゴリーから日付へ)とデータの表示方法(バーから線へ)が異なりますが、お仲間さんになります😲

const chart = am4core.create('chartdiv', am4charts.XYChart)

2. データの設定

今回はデータに日付を持つようになりました。Dateに年月を渡してオブジェクトを生成します。

※月は「0〜11」で指定します(5月なら「4」になる。「英語の月名を配列で取得するのに便利」とどこかで読んだ気がした)。

chart.data = [
  {
    date: new Date(2020, 4),
    count: 10
  },
  {
    date: new Date(2020, 5),
    count: 12
  },
  {
    date: new Date(2020, 6),
    count: 5
  }
]

3. X軸の設定(日付)

今回は値を日付別に表示したいので、DateAxis(日付軸)を使用します。

const dateAxis = chart.xAxes.push(new am4charts.DateAxis())

4. Y軸の設定(値)

ここは棒グラフの時と変わらず。

const valueAxis = chart.yAxes.push(new am4charts.ValueAxis())

5. データの紐付け

線を表示するには、chart.seriesにLineSeriesを追加します。

棒グラフの時はcategoryXにカテゴリーのキーを指定してましたが、今回はdateXに日付のキーを指定します。

const series = chart.series.push(new am4charts.LineSeries())
series.dataFields.valueY = 'count'
series.dataFields.dateX = 'date'

おまけ1:線を太くする

初期値の線はだいぶ細いのですが、LineSeriesに対してstrokeWidthで線の太さをピクセルで指定できます。

series.strokeWidth = 2

あとがき

折れ線グラフは棒グラフとXYChart仲間というのもあってほぼコピペのようなコードになりました🤔 が、棒グラフの記事にDateAxisとLineSeriesのことを差し込むのもややこしくなりそうだなあと悩みどころ🙄

関連投稿

【amCharts 4】簡単な円グラフの作り方
【amCharts 4】簡単な棒グラフの作り方

参考

Date Axis – amCharts 4 Documentation
LineSeries – amCharts 4 Documentation

この記事が気に入ったらサポートをしてみませんか?