UIXHERO

Line Chart(折れ線グラフ)

時間に沿った値の動きを線で示すチャート。点をつないでよいデータの条件、縦軸を切るときの書き方、系列数の上限、直接ラベルという設計判断と、色だけに頼らないアクセシビリティ要件を解説する。

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

時間に沿った値の動きを、点と線で示すチャートです。売上の推移、稼働率の変化、目標との距離のように、上がっているのか下がっているのかを先に決めさせたいときに使います。

この記事を読むと、点をつないでよいデータの条件、縦軸を切るときの断り方、同時に置ける系列の数、凡例より直接ラベルが読みやすい理由が自分でできるようになります。


1. UI例(Preview / Live)

実装で見る(GunjoUI)

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

2. 定義(Definition)

折れ線グラフは、横軸に沿って並んだ点をつないで、値の動きを見せるチャートです。線は「点と点の間にも値が続いている」という主張です。この主張が成り立つデータでだけ使えます。

棒グラフとの違い:棒グラフは項目どうしが独立していてよく、並び替えても意味が変わりません。折れ線は横軸の順序が意味を持つため、並び替えると図が別のことを言い出します。

面グラフとの違い:面グラフは線の下を塗ります。塗ると「積み上がった量」に見えるため、合計に意味があるときに向きます。複数系列を重ねて塗ると、後ろの系列が隠れます。

スパークラインとの違い:スパークラインは軸も目盛りも持たない小さな線です。傾向だけを示し、正確な値は隣の数字に任せます。


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

3.1 When to use

  • 時系列の傾向を見せる:日次、週次、月次の推移。上昇か下降かを先に決めさせたいとき
  • 目標との距離を見せる:実績と目標を 2 本並べ、開きが縮んでいるかを読ませたいとき
  • 点が多い:10 点を超えると、棒グラフより折れ線のほうが傾向を追いやすくなります
  • 複数の期間を重ねる:今年と去年を重ねて、季節の動きを比べたいとき

3.2 When NOT to use

  • 横軸が独立したカテゴリ:都市別、担当者別のように、間に値が存在しないもの。棒グラフを使います
  • 構成比を見せたい:割合が主題なら、円グラフか積み上げ棒を使います
  • 系列が 6 本を超える:線が交差して追えなくなります。小さなチャートを並べる作りに切り替えます
  • 点が 2 つしか無い:2 点を結んだ線は、途中の動きが直線だったという印象だけを残します

3.3 代替UI(Alternatives)


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

折れ線の核は「線が、点と点の間にも値があると主張している」こと。独立したカテゴリを線でつなぐと、存在しない中間の値を読者に読ませることになる。

判断の優先順位:1. つないでよいデータか、2. 縦軸の範囲と、切ったことの明示、3. 系列の数、4. 凡例か直接ラベルか。

  • つないでよいのは、間に値が存在するときだけ:月、週、時刻のように連続していれば、線には意味があります。都市別や担当者別を線でつなぐと、読者は「東京と大阪の間」を読み取ろうとします。上ので横軸を都市に切り替えると、同じ線が急に意味を失います。判断は簡単で、「隣り合う 2 点の中間に値を置けるか」を確かめるだけです。
  • 縦軸はゼロから始めなくてよい。ただし切ったと分かるようにする:折れ線は長さではなく傾きで読ませるので、棒グラフと違ってゼロ基線は前提ではありません。むしろ変動が小さいデータをゼロから描くと、線が平らになって何も読めません。範囲を絞ったときは、軸の下端の数字を出し、ゼロから始まっていないことを分かるようにします。GUNJO(群青)は XHERO が作っているデザインシステムです。その LineChart には縦軸の範囲を固定する指定があり、複数のチャートでスケールをそろえるときに使います。
  • 同時に置く系列は 4 本まで:線が増えるほど交差が増え、どの線を追っていたか分からなくなります。5 本以上を比べたいなら、同じ作りの小さなチャートを並べて、それぞれ 1 本ずつにします。全体の中の 1 本を強調したいなら、対象だけを濃くして残りを薄い灰色にします。
  • 凡例より、線の終わりに名前を置く:凡例は「色と名前の対応」を覚えてから図に戻る作業を読者に強います。線の右端に名前を直接置けば、目の往復が消えます。GUNJO の LineChart には showLegend がありますが、系列が 2 本から 3 本なら直接ラベルのほうが速く読めます。
  • 系列の区別を色だけに載せない:実線と破線、点の記号、直接ラベルのどれかを足します。色だけで区別した折れ線は、色を見分けにくい読者に届かず、白黒で印刷した瞬間にも読めなくなります。これはAI が作ったUIの失敗 29 件の 28 番目「状態の違いが、色だけに乗る」と同じ崩れ方です。

5. 状態設計(States)

5.1 必須状態(Required)

  • データあり:線、点、軸、ラベルがそろっている
  • データなし:期間内に点が 1 つも無い。空の座標軸だけを残さない
  • 読み込み中:高さを確保し、描画後にレイアウトが動かないようにする

5.2 条件付き状態(Conditional)

  • 欠測:途中の点が取れていない。線をつながず、そこが切れていると分かるようにする
  • 予測や見込み:確定値と同じ実線にしない。破線にして、いつからが見込みかを書く
  • ホバー / フォーカス:その時点の全系列の値をまとめて出す
  • エラー:取得に失敗した。古い線を残したまま最新のように見せない
状態必須何を伝えるか
データあり必須値の動きと、系列どうしの開き
データなし必須この期間に記録が無い理由
読み込み中必須取得中であること
欠測条件付きここは 0 ではなく、値が無い
予測条件付きここから先は確定していない
ホバー / フォーカス条件付きこの時点の各系列の値
エラー条件付き取得に失敗した。数字は信用できない

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

線か面か、点を出すか、基準線を引くかの組み合わせです。

バリアントGUNJO の指定典型的な用途
線表示variant="line"(既定)複数系列の比較。交差を読ませたいとき
面表示variant="area"系列が 1 本で、量の大きさも見せたいとき
点なしshowDots={false}点が多く、個々の値より傾向を優先するとき
基準線つきreferenceValue + referenceLabel目標や平均との距離が主題のとき
凡例つきshowLegend系列が 4 本で、直接ラベルが重なるとき

禁止パターン:面表示で複数系列を重ねること。後ろの系列が隠れ、どこまでが誰の値なのか読めなくなります。複数系列の量を同時に見せたいなら、Stacked Bar Chart(積み上げ棒グラフ)を使います。


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

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

  • 独立したカテゴリを線でつなぐ:存在しない中間の値を読ませます。棒グラフに変えるだけで直ります
  • 縦軸を切ったことを書かない:範囲を絞ること自体は妥当でも、断りが無いと差が誇張されます
  • 系列を色だけで区別する:白黒印刷でも、色を見分けにくい読者にも、区別が消えます

7.1 Bad(典型3つ)

  • 部署別の人数を折れ線にしており、営業と開発の間に点が読めそうな線が引かれている
  • 縦軸が 95 から 100 の範囲なのに、下端の数字が出ておらず、わずかな変動が急落に見える
  • 実績と予測を同じ実線でつないでおり、どこからが見込みなのか読者が判断できない

7.2 Good(対になる3つ)

  • 部署別は棒グラフにする。時間の推移を見せたいなら、部署ごとに月別の折れ線を並べる
  • 縦軸の下端に「95」と書き、ゼロから始まっていないことを図の中で示す
  • 予測部分を破線にし、切り替わる時点に「ここから見込み」と注記する

7.3 How to fix(手順)

  1. 隣り合う 2 点の中間に値を置けるか確かめる。置けないなら棒グラフに変える
  2. 縦軸の下端を確認する。ゼロでなければ、下端の数字を図の中に出す
  3. 系列を数える。5 本以上なら、小さなチャートを並べる作りに分ける
  4. 色で区別している系列に、線の種類か直接ラベルを足す
  5. <svg>role="img"aria-label を付け、要約(開始値、終了値、向き)を書く

8. ルール(Must / Better)

Must(守らないと壊れる)

Better(品質が跳ねる)


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

チャートは「色だけで系列を区別する」が起きやすいコンポーネントです。次の 3 点を満たします。

9.1 色だけに頼らない

折れ線では、色以外の手がかりを線そのものに載せられます。

  • 線の種類:実線、破線、点線を使い分ける
  • 点の形:丸、四角、三角で系列を分ける
  • 直接ラベル:線の終わりに系列名を置く。これが最も確実です

線とのコントラスト比は 3:1 以上を確保します。薄い灰色の線は、明るい画面では消えます。

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

<figure>
  <svg role="img" aria-labelledby="line-title line-desc">
    <title id="line-title">月別の実績と目標(2026年1月から6月)</title>
    <desc id="line-desc">
      実績は42から71へ上昇し、4月に63で一度伸びたあと5月に58へ下がった。
      目標は46から66へ一定の傾きで上昇。実績が目標を上回るのは4月と6月。
    </desc>
  </svg>
  <figcaption>
    <details>
      <summary>数値を表で見る</summary>
      <table>
        <caption>月別の実績と目標(単位は件)</caption>
        <thead><tr><th scope="col">月</th><th scope="col">実績</th><th scope="col">目標</th></tr></thead>
        <tbody>
          <tr><th scope="row">1月</th><td>42</td><td>46</td></tr>
          <tr><th scope="row">2月</th><td>51</td><td>50</td></tr>
        </tbody>
      </table>
    </details>
  </figcaption>
</figure>

aria-label に 12 か月ぶんの数字を並べても、読み上げでは覚えられません。要約(開始値、終了値、向き、目立つ変化)を書き、正確な数字は表に置きます。

9.3 キーボードで点をたどれる

点が操作できる(その日の詳細を開くなど)なら、キーボードでも同じことができる状態にします。

  • Tab でチャートに入り、ArrowLeftArrowRight で時点を移動する
  • 系列が複数あるなら、ArrowUpArrowDown で系列を切り替える
  • フォーカス中の点には、色以外にも見える枠を出す
  • 移動のたびに、その時点の値を読み上げに流す(aria-live="polite" の小さな領域を使う)

9.4 Touch / Pointer

点は小さいので、点そのものを当たり判定にしません。横軸のその位置を縦に貫く透明な帯を置き、帯のどこを触っても同じ時点が選ばれるようにします。帯の幅は 44 ピクセル以上を目安にします。


10. 実装メモ(Implementation Notes)

  • GUNJO の LineChartseries{ label, data, color } の配列)を受け取ります。data は数値の配列でも、{ label, value } の配列でも渡せます
  • variant="area" は 1 系列のときに使います。複数系列で塗ると、重なった部分の値が読めなくなります
  • showDots={false} は点が 20 を超えたあたりから読みやすくなります。点が密集すると、線ではなく点の帯に見えてしまうためです
  • 複数のチャートを並べて比べるなら、縦軸の範囲を明示して固定します。自動スケールのままだと、チャートごとに縮尺が変わり、形の比較ができません
  • 実装は GUNJO の LineChartgunjo.jp を新しいタブで開く にあります。線表示、面表示、基準線、範囲固定の見本が置かれています

11. 関連リンク


12. まとめ

折れ線の設計でいちばん効くのは、「線でつないでよいデータか」を先に確かめることです。迷ったら 4. 設計判断の核 に戻り、「隣り合う 2 点の中間に値を置けるか」「縦軸を切ったなら断ってあるか」「系列は 4 本以内か」の 3 点を確かめてください。

系列の区別は、色に線の種類か直接ラベルを足すだけで、白黒印刷でも読み上げでも通る図になります。系列が 5 本を超えたと感じたら、線を増やすのではなく、小さなチャートを並べる方向へ切り替えてください。

更新のお知らせ

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

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

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

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

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

リクエストを送る