MENU
カタログクリップ
本ページはプロモーションを含みます。

Chart.jsのパイチャートがスマホ画面で潰れてしまうのを防ぐ方法!

2020 6/28
広告
コンピューター
2017年11月11日2020年6月28日

Chart.jsはレスポンシブ対応のjavascriptチャートライブラリです。

レスポンシブ対応を謳っていますが、パイチャート/ドーナッツチャートをスマホなどの幅の狭い画面で表示させると、パイが縮小されすぎて見づらくなってしまいます。

それを防ぐ方法を紹介します。

目次

問題

Chart.jsでパイチャートを描いて、横幅~320 pxのスマホで表示させると次のようにパイ部分が潰れてしまいます。

 

対策

縦横比はデフォルトでは横長になっています。横幅の小さい画面でも、それを維持しようとするため、凡例(keys/legend)に場所を取られてしまったパイが潰れてしまうのだと予想されます。

凡例を小さくする方法もありますが、凡例を小さくすると、凡例が読めなくなりますし、凡例を限りなく小さくしてもパイはそれほど大きくなりそうにありません。

 

そのため、縦横比を維持しないように設定します。

オプションに次の項目を追加します。

options: {
    maintainAspectRatio: false,
}

 

次に、縦横比を無視するように指示したため、縦横比の基準を指定しなくてはなりません。

そこで、次のようにchart-containerで、canvas囲み、縦横比を指定します。

<div class="chart-container" style="position: relative; width:80vw; height:50vh">
    <canvas id="myChart"></canvas>
</div>

ここで気をつけるのは次の2点です。

  • chart-containerの中にはcanvasタグしか入れてはいけない仕様になっています。他のものを入れるとレイアウトが崩れます。
  • position: relativeでないといけません。

 

つまり、いじることができるのはwidthとheightです。

widthはビュー幅(vw)に対して指定していますが、コンテナ比で80%と指定するのも可能です。例: width:80%

サイドバーのあるレイアウトでは、サイドバーにかからないようにコンテナ比で指定するのがよいでしょう。

heightはコンテナ比では指定できませんので(自身のサイズもコンテナサイズに影響するため)、ビュー高さ(vh)に対して指定すると良いと思います。あるいはpx指定するのも良いかもしれませんね。

 

対策を行ったものが次のものです。

無事、パイが縮小されずに表示されました。

なお、パイ中にラベルを入れる方法は次の記事で紹介しています。

Chart.jsで、ラベルやデータ値を常に表示する方法。パイチャートで便利!

まとめ

Chart.jsのレスポンシブ対応に期待してパイチャート/ドーナッツチャートを描く場合は、以上の設定を忘れないようにしましょう。

以上、Chart.jsのパイチャートがスマホ画面で潰れてしまうのを防ぐ方法!でした。

参考文献

Chart.js ドキュメント > Responsive

 

コンピューター
highlightjs

関連記事

  • Speed Wi-Fi DOCK 5G 01の実機使用レビュー。
    2025年4月16日
  • AXE5400VとAX80Vの3つの違い。[Wi-Fiルーター]
    2025年4月7日
  • Archer AXE5400とAX80の3つの違い。[Wi-Fiルーター]
    2025年4月7日
  • Archer AXE5400とAX5400の3つの違い。[Wi-Fiルーター]
    2025年4月6日
  • Archer AX3000とAX1800の2つの違い。[Wi-Fiルーター]
    2025年4月6日
  • Archer AX3000VとAX23Vの2つの違い。[Wi-Fiルーター]
    2025年4月5日
  • Archer AX80とAX5400の3つの違い。[Wi-Fiルーター]
    2025年4月5日
  • Archer AX80VとAX73Vの3つの違い。[Wi-Fiルーター]
    2025年4月5日
カテゴリー
  • コンピューター
    • gnuplot & eps
    • mac
    • matplotlib
    • wordpress
  • ホーム・家電
    • アイロン
    • オーディオ
    • オーラルケア
      • ジェットウォッシャー
      • 音波振動歯ブラシ
    • カメラ
    • カー用品
    • クリーナー
    • テレビ、レコーダー
    • ドアホン
    • メンズ美容家電
      • ラムダッシュ
    • ルンバ
    • 一覧比較
    • 工具
    • 浄水器
    • 温水洗浄便座
    • 炊飯器
    • 空気清浄機・加除湿機
    • 空調・季節家電
    • 美容家電
      • フェイスケア
      • ヘアケア
      • ボディーケア
    • 血圧計
    • 調理器具
    • 電子レンジ
  • 健康
  • 家事
    • パン
    • 料理
    • 育児
    • 食品
      • おせち
      • コーヒー
  • 書籍
  • 知識
  • 趣味
    • ペン字
    • ロードバイク・クロスバイク
    • 車
    • 鉄道模型
    • 電子工作
サイト内検索
最近の投稿
  • モナークHGとモナークM7の4つの違い。[ニコン双眼鏡]
  • ニコン モナーク M7とM5の4つの違い。[双眼鏡]
  • Speed Wi-Fi DOCK 5G 01の実機使用レビュー。
  • RZ-760、GT-760、ST-760の違い。[ガス缶・CB缶]
  • RZ-730、RZ-730S、RZ-730SBK、RZ-730SWH、ST-Y450の違い。
  • TC-EA35WとTC-E123SBKの違いを比較。[スティッククリーナー]
  1. ホーム
  2. コンピューター
  3. Chart.jsのパイチャートがスマホ画面で潰れてしまうのを防ぐ方法!
  • ホーム
  • プライバシーポリシー

© カタログクリップ
contact@beiznotes.org

目次