袖はなくとも振りたい

アウトプット用に作りました。Laravelのこととか書きます。

Chart.js レーダーチャートで凡例最小値が中心に来ちゃう問題

Chart.jsを使ってレーダーチャートを以下のように表示したかった。

 

・自己のスキルをレーダーチャートで表示したい

・スキルは0~4の5段階とした。

・表示するスキルに0は無い(なら書かなくてもいい)ので、実際0になる凡例はない

・データは1~3の間で、4も無い

 

で、諸々のデータを入力し表示させてみたところ、

凡例の最小値(この場合は1)がレーダーの中央に来てしまっていた。

このままだと、最小値のスキルが0の様に見えてしまうので良くない。

 

原因はオプションの記述にあった。

 

間違った記述

options: {
 legend: {
  display: false,
  responsive: true,
  //スケールの設定
   scale: {
    display: false,
    ticks: {
     // 目盛り値のカスタマイズ
     stepSize: 1,
     // 最小値の値を0指定
     beginAtZero:true,
     max: 4,
     min: 0
    }
   }
 }
}

正しい記述

options: {
 responsive: true,
 legend: {
  display: false
 },
 //スケールの設定
 scale: {
  ticks: {
  // 目盛り値のカスタマイズ
  stepSize: 1,
  // 最小値の値を0指定
  beginAtZero:true,
  max: 4,
  min: 0
  }
 }
}

 

 

間違っていたのは、メモリの値のカスタマイズを担当しているscale さんが

legend:{} の中に入ってしまっていたところ。

 

目的の設定としては、

options: {

 scale:{

  ticks:{

の中に、stepSizeやmin,maxの設定を入れればOK。

 

optionsはいろいろあって並べていくとよくわからなくなっていくので

どのオプションがどこの入れ子になっているべきなのか。

あと無駄に広げずに一旦完結できるところは閉じる。 あたりを意識していきたい。