UIXHERO

Pie Chart(円グラフ)

全体に対する構成比を扇形で示すチャート。合計が意味を持つ条件、区分数の上限、並び順、値をどこに書くかという設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
更新: 2026年8月27日
22
by Dengen Yosho(DGYS)

全体を 100 パーセントとして、その内訳を扇形の大きさで示すチャートです。流入チャネルの構成、売上の内訳、回答の分布のように、全体のうちどれくらいを占めるかを伝えたいときに使います。

この記事を読むと、円グラフを選んでよいデータの条件、扇形をいくつまで置けるか、並び順の決め方、値を凡例ではなく図の中に書く理由が自分でできるようになります。


1. UI例(Preview / Live)

実装で見る(GunjoUI)

この部品を、デザインシステム GUNJO の実装で確かめられます。

2. 定義(Definition)

円グラフは、円全体を 100 パーセントとみなし、各項目の割合を扇形の中心角に写すチャートです。読者が受け取るのは「全体のうち、これがこれくらい」という関係です。実数そのものではなく、あくまで割合を伝えます。

棒グラフとの違い:棒グラフは長さを比べます。長さは目で正確に比べられます。円グラフは角度と面積を比べさせるため、近い大きさの扇形どうしは判別できません。順位を決めさせたいなら棒グラフが向きます。

ドーナツチャートとの違い:円の中央をくり抜いたものがドーナツチャートです。空いた中央に合計値や主要な数字を置けるのが違いで、それが要らないなら円グラフで足ります。

積み上げ棒との違い:積み上げ棒は複数のまとまりの内訳を横に並べて比べられます。円グラフは 1 つのまとまりの内訳しか扱えません。


3. 使い分け(When to use / When NOT to use)

3.1 When to use

  • 1 つの全体の内訳を見せる:ある月の流入チャネル、ある予算の費目
  • 区分が 5 つ以下:それを超えるなら、下位をまとめるか棒グラフにします
  • 1 つの区分が過半を占める:「大半がこれ」という主張は、円グラフが最も速く伝えます
  • 正確な順位より、おおまかな比率を伝えたい:報告資料の要約など

3.2 When NOT to use

  • 合計に意味が無い:店舗別の売上、担当者別の件数のように、足しても読めない数字
  • 項目が排他でない:複数回答のアンケートのように、合計が 100 を超えるもの
  • 順位を決めさせたい:近い大きさの扇形は判別できません。棒グラフを使います
  • 時間の推移を見せたい:円グラフを何枚も並べても読めません。積み上げ棒か折れ線を使います
  • 2 つの全体を比べたい:円を 2 つ並べても、扇形どうしの比較はできません

3.3 代替UI(Alternatives)


4. 設計判断の核(Decision Principles)

円グラフの核は「合計に意味があること」。全体という言葉が読者にとって具体的でないなら、そのデータは円グラフに向いていない。

判断の優先順位:1. 合計が意味を持つか、2. 区分の数、3. 並び順、4. 値をどこに書くか。

  • 合計に意味があるか、を先に決める:円グラフは「これで全部です」と宣言する図です。流入チャネルなら、1 件の訪問はどれか 1 つに属し、足すと訪問の総数になります。店舗別の売上を円グラフにすると、5 店舗の合計という数字に読む意味が無いのに、あるかのように見えてしまいます。複数回答のアンケートも同じで、合計が 100 を超えるデータを 100 パーセントの円に押し込むと、数字が書き換わります。
  • 扇形は 5 つまでにする:人は角度の差を正確には比べられません。上ので 8 区分に切り替えると、下位 4 つはどれも同じ細さに見えます。区分が多いときは、上位 4 つを残して残りを「その他」にまとめます。「その他」の中身は、別の表かドリルダウンで見られるようにします。
  • 並び順は 12 時から時計回りに、大きい順:円には始まりと終わりがありません。だから読み始める位置を決める約束が要ります。12 時から時計回りに大きい順で並べると、読者は最初に最大の区分に当たります。順序に意味があるデータ(評価の 5 段階など)なら、大きさではなく、その順序に従います。
  • 値は図の中に書く。凡例だけにしない:凡例は「色と名前の対応」を覚えてから図に戻る作業を強います。上のデモで凡例だけに切り替えると、「メールは何パーセントか」に答えるには扇形の角度を目で測ることになります。GUNJO(群青)は XHERO が作っているデザインシステムです。その PieChartshowLegend は名前と割合の両方を出すので、割合を落とさないでください。
  • 扇形の区別を色だけに載せない:隣り合う扇形の色が近いと、境目が消えます。区切りに色の細い線を入れ、名前と割合を文字で添えます。色を見分けにくい読者にとって、円グラフは最も情報が失われやすい図です。これはAI が作ったUIの失敗 29 件の 28 番目「状態の違いが、色だけに乗る」と同じ崩れ方です。

5. 状態設計(States)

5.1 必須状態(Required)

  • データあり:扇形と、名前と割合がそろっている
  • データなし:全項目が 0 件。灰色の円だけを残さず、理由を書く
  • 読み込み中:円の大きさを確保し、描画後にレイアウトが動かないようにする

5.2 条件付き状態(Conditional)

  • 1 区分だけ:円が 1 色になる。この場合は数字をそのまま出すほうが速く読めます
  • 極端に小さい区分:1 パーセント未満の扇形は線にしか見えません。「その他」に含めます
  • ホバー / フォーカス:その扇形の名前、値、割合を出す
  • エラー:取得に失敗した。前回の円を残したまま最新のように見せない
状態必須何を伝えるか
データあり必須各区分の割合と、全体の中での位置
データなし必須集計対象が 0 件である理由
読み込み中必須取得中であること
1 区分だけ条件付き内訳が分かれていない(円である必要が無い)
極小の区分条件付き1 パーセント未満がまとめられていること
ホバー / フォーカス条件付きその区分の名前と値と割合
エラー条件付き取得に失敗した。数字は信用できない

6. バリエーション設計(Variants)

大きさと、凡例を出すかどうかで決まります。

バリアントGUNJO の指定典型的な用途
variant="default"(既定)単独で置く構成比。凡例つき
コンパクトvariant="compact"カードやサイドパネルの中
凡例つきshowLegend名前と割合を図の外に並べる
値の整形valueFormat桁区切りや単位をそろえる

禁止パターン:円を 2 つ並べて「先月と今月」を比べさせること。扇形どうしの比較はできないので、読者は結局どちらが増えたのか判断できません。推移を見せたいならStacked Bar Chart(積み上げ棒グラフ)を正規化して並べます。


7. パターン集(Good / Bad / How to fix)

7.0 よく崩れる設計パターン(3つ)

  • 合計に意味が無いデータを円にする:足しても読めない数字を「全体」として扱ってしまいます
  • 区分が多すぎて順位が読めない:8 区分の円グラフは、下位が全部同じ細さに見えます
  • 凡例に名前しか無い:割合を読むために、扇形の角度を目で測ることになります

7.1 Bad(典型3つ)

  • 5 店舗の売上を円グラフにしている。読者は「全店の合計に対する比率」を求めていない
  • 流入チャネルを 9 区分の円グラフにしており、下位 5 つの順位が読めない
  • 凡例に色と名前だけがあり、割合は扇形にホバーしないと出てこない

7.2 Good(対になる3つ)

  • 店舗別は横棒グラフにして、値の大きい順に並べる
  • 上位 4 チャネルを残し、残りを「その他」にまとめる。中身は表で見られるようにする
  • 凡例に名前と割合の両方を出す。扇形が大きければ、図の中にも直接書く

7.3 How to fix(手順)

  1. 合計を声に出して読んでみる。読む意味が無ければ、円グラフをやめて棒グラフにする
  2. 区分を数える。6 つ以上なら、上位 4 つと「その他」にまとめる
  3. 12 時から時計回りに大きい順へ並べ替える(順序に意味があるデータは除く)
  4. 凡例に割合を足す。扇形が十分大きいものは、図の中にも名前と割合を書く
  5. <svg>role="img"aria-label を付け、各区分の名前と割合を読み上げに流す

8. ルール(Must / Better)

Must(守らないと壊れる)

Better(品質が跳ねる)


9. アクセシビリティ要件(必須)

チャートは「色だけで系列を区別する」が起きやすいコンポーネントです。円グラフは扇形の中に模様や線を足しにくいため、文字での提示がとくに効きます。次の 3 点を満たします。

9.1 色だけに頼らない

  • 区切り線:扇形どうしの境目に、背景色の細い線を入れる。色が近くても境目が残ります
  • 直接ラベル:大きい扇形には、図の中に名前と割合を書く
  • 凡例の並び順:凡例を扇形と同じ順(12 時から時計回り)に並べる。色を頼りに探さずに済みます
  • 模様:区分が 4 つ以下なら、斜線や点の模様を 1 つか 2 つ混ぜる方法もあります

扇形と背景、扇形どうしの比は 3:1 以上を確保します。

9.2 代替テキストか表での提示

<figure>
  <svg role="img" aria-labelledby="pie-title pie-desc">
    <title id="pie-title">流入チャネルの構成比(2026年8月・母数 3,542 件)</title>
    <desc id="pie-desc">
      自然検索34パーセント、SNS22パーセント、メール16パーセント、広告12パーセント、
      その他16パーセント。自然検索が最も大きい。
    </desc>
  </svg>
  <figcaption>
    <table>
      <caption>流入チャネルの構成比(母数 3,542 件)</caption>
      <thead><tr><th scope="col">チャネル</th><th scope="col">件数</th><th scope="col">割合</th></tr></thead>
      <tbody>
        <tr><th scope="row">自然検索</th><td>1,204</td><td>34%</td></tr>
        <tr><th scope="row">SNS</th><td>779</td><td>22%</td></tr>
      </tbody>
    </table>
  </figcaption>
</figure>

円グラフは区分が 5 つ以下なので、aria-label にすべての区分を並べても長くなりません。母数を書き添えると、割合だけでは分からない規模が伝わります。

9.3 キーボードで区分をたどれる

扇形がクリックできる(そのチャネルの詳細に移るなど)なら、キーボードでも同じことができる状態にします。

  • Tab でチャートに入り、ArrowLeftArrowRight で扇形を移動する
  • フォーカス中の扇形には、色以外にも見える枠を出す(外周を太くする、少し外へずらす)
  • EnterSpace で、クリックと同じ操作が起きる
  • 扇形がクリックできないなら、フォーカス可能にしません

凡例をリストとして先に読ませる作りにすると、扇形そのものを操作させずに済む場合があります。凡例の各行をボタンにするほうが、扇形を当たり判定にするより確実です。

9.4 Touch / Pointer

細い扇形はタップできません。1 パーセント未満をまとめたうえで、凡例の行もタップできるようにします。凡例の行なら高さ 44 ピクセル以上を確保できます。


10. 実装メモ(Implementation Notes)

  • GUNJO の PieChartsegments{ label, value, color } の配列)を受け取り、割合は自動で計算します。パーセントを自分で計算して渡す必要はありません
  • formatValue は関数を渡す prop のため、クライアントコンポーネントからのみ渡せます。サーバーコンポーネントから桁区切りを指定したいときは、シリアライズできる valueFormat を使います
  • variant="compact" はカードの中で使う小さめの寸法です。小さくすると扇形の判別はさらに難しくなるため、区分は 4 つ以下に抑えます
  • 扇形の境目には背景色の細い線を引きます。色が近い区分が隣り合っても、境目が残ります
  • 実装は GUNJO の PieChartgunjo.jp を新しいタブで開く にあります。標準、凡例つき、コンパクト、区分が多い場合の見本が置かれています

11. 関連リンク


12. まとめ

円グラフの設計でいちばん効くのは、使う前に「合計に意味があるか」を確かめることです。迷ったら 4. 設計判断の核 に戻り、「足した数字を読む意味があるか」「扇形は 5 つ以下か」「割合が文字で書かれているか」の 3 点を確かめてください。

順位を決めさせたい場面では、円グラフは棒グラフに勝てません。人は長さは比べられますが、角度は比べられないからです。円グラフが向くのは「大半がこれです」という 1 つの主張を、速く伝えたいときです。

更新のお知らせ

サイトに載せていない実例や、新しい記事のお知らせはこちらで出しています。

読んだ内容を、自分の画面に当てるとき

UIXHEROは、記事を書くほかに、画面の検品・判定、デザインシステムの構築、実装と改善の伴走を受けています。何を頼めばいいか決まっていない段階の相談も、同じ窓口で受けます。

UIXHEROに頼めることを見る

※ 記事の内容についての質問や、書いてほしいテーマの要望も同じ窓口で受けています

記事をシェア

メールでお知らせを受け取る

最終更新: 2026年8月27日

この記事を書いた人

Dengen Yosho(DGYS)

Dengen Yosho(DGYS)

UI/UXデザイナー兼デザインエンジニア デザイン歴25年以上 情報設計〜UIデザイン〜React/TypeScriptによる実装までを一気通貫で担当 大手企業のDXプロジェクトや決済アプリ領域で、デザインリードとして改善と構築を経験 現在はフリーランスとして、プロダクトのUI/UX改善とデザインシステム構築を支援 長年の実務の中で感じてきたのは、 「良いUI」はセンスではなく、再現可能な判断の積み重ねであるということ UIXHEROは、 心理学や行動科学の知見を、現場で使える設計言語に翻訳するための場所 関心領域は「ユーザーの行動が変わるUI」 人の認知・注意・意思決定の構造を理解し、 “なぜそのUIが機能するのか”を言語化することを目指している

あわせて読みたい

この記事に関連する記事をご紹介します

Bar Chart(棒グラフ)

カテゴリごとの量を棒の長さで比べるチャート。ゼロ基線の扱い、並び順、縦横の選び方、しきい値の見せ方という設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
18

Donut Chart(ドーナツチャート)

中央をくり抜いた円で構成比を示すチャート。中央に置く値の選び方、円グラフとの使い分け、リングの太さ、凡例の作りという設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

2026年8月27日
17

Gauge Chart(ゲージチャート)

1つの値を範囲の中に置いて示す半円のチャート。範囲の両端に意味があるかという条件、しきい値の帯の設計、色だけで良否を伝えない書き方という設計判断とアクセシビリティ要件を解説する。

2026年8月27日
16

もっと深く知りたいですか?

ここに掲載されていないトピックについても、リクエストがあれば解説記事を追加します。 わかりにくい点や、具体的な事例について知りたいことがあれば教えてください。

リクエストを送る