apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更
はじめに
apertureless/vue-chartjs でチャートの高さ(や幅、サイズ)を変更する方法
TL;DR
- チャート要素に
width
やheight
を設定- 本家 Chart.js ではなく vue-chartjs のドキュメント に記載
options.responsive
やoptions.maintainAspectRatio
も合わせて指定
- 親要素の
width
やheight
をvw
,vh
で指定する方法もある - ウィンドウのリサイズなども考え出すと割と茨の道っぽい
- ベストプラクティスが見つかってない(自分的には)
目次
環境・条件
1 | $ sw_vers |
詳細
設定方法
参考: Props - Coding Reference | 📈 vue-chartjs
チャートの細かいカスタマイズは、基本的には Chart.js 本家のドキュメント を参照することになる。が、vue-chartjs でのチャートサイズの変更に関しては vue-chartjs 側のドキュメント に書かれている。(気付かずにめちゃくちゃ本家側のドキュメントを探し回った)
やること自体は単純で width
や height
を指定するだけで良い。
実装例1
MyLineChart.js
1 | import { Line, mixins } from 'vue-chartjs'; |
MyLineChart.vue
width
, height
をウィンドウサイズ(幅, 高さ)の半分(1/2
)として設定する例。options.responsive
を false
にしないと、幅いっぱいに描画される(width
, height
が効かない)ので注意。
1 | <template> |
実装例2
参考: Vue-chartjs is rendering my responsive chart too tall for my window - Stack Overflow
前の例だと options.responsive
を false
にして、width
, height
を設定したので、ウィンドウサイズが変わってもチャートサイズが変わらない。
できれば vw
や vw
を使って、親要素の width
や height
を設定する。かつ、縦横 1:1 のチャートだと不都合がある場合には、チャートそのもののサイズを指定(変更)するなどの方が良さそう。
options.responsive
を false
にする代わりに、options.maintainAspectRatio
を false
にしている。
1 | <template> |
まとめ
- チャート要素に
width
やheight
を設定- 本家 Chart.js ではなく vue-chartjs のドキュメント に記載
options.responsive
やoptions.maintainAspectRatio
も合わせて指定
- 親要素の
width
やheight
をvw
,vh
で指定する方法もある - ウィンドウのリサイズなども考え出すと割と茨の道っぽい
- ベストプラクティスが見つかってない(自分的には)
参考文献
- Coding Reference | 📈 vue-chartjs
- Responsive · Chart.js documentation
- Vue-chartjs is rendering my responsive chart too tall for my window - Stack Overflow
関連記事
- Chart.js(vue-chartjs) でツールチップの表示内容を変更
- Chart.js で X軸, Y軸の値をカスタマイズ
- Chart.js(vue-chartjs) で凡例の一部を非表示にする方法
- Chart.js(vue-chartjs) でツールチップの表示位置を変更
- Vue でローソク足(OHLC)チャートをプロット
- Vue.js で日本語変換での誤発火を抑止しつつ Enter キーで Submit
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア