LoginSignup
0
2

More than 5 years have passed since last update.

vue-chartjsで凡例をカスタマイズ

Posted at

はじめに

凡例は文字の太さや位置はオプションで対応可能ですが、レイアウトなどになるとそのままでは対応出来ませんでした。

調べたところ、大本のchart.jsでは、凡例部分のHTMLを出力させてstyleで対応させていました。
vue-chartjsでも対応する為のコードがあった為、それで対応しました。

備忘かねて投稿します。

やった事

  • mount後に'generateLegend()'して、凡例のHTMLを取得。
  • 取得したHTMLに対してstyleを設定

今回の案件では

  • 生成したHTMLを親コンポーネントに送る
  • 親コンポーネントでイベント購読し、凡例部分のHTMLを取得する。
  • HTMLとして出力。style設定

今回の注意事項

-生HTMLなので、v-htmlを使う。
-凡例部分のHTMLにstyleを設定する際、scopedにするとstyleが反映されないので注意。([data-v-***]がない)


  // 凡例のHTMLを生成
  this.legend = this.generateLegend();

  // 生成したHTMLを親に送出する場合
  this.$emit('legend', this.htmlLegend);

参考

https://qiita.com/choro/items/69029ac20a539670ee68
https://vue-chartjs.org/api/#generatelegend
https://stackoverflow.com/questions/44649247/how-to-create-custom-legend-in-chartjs

0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2