Design Vault 用途・構成・配色・本文で検索 /
索引 カテゴリ タグ English
索引に戻る

世帯所得の分布 — 上位20%が所得の半分を占める

一軸
世帯所得の分布 — 上位20%が所得の半分を占める
140 100

1920 × 1080 作品として見る

持ち帰る

コピーして貼るか、ファイルに保存して渡す。ネットにつながらない環境には「全部入り」を 1 つ渡せば足りる。

全部入り

lorenz-curve-household-income-share-everything.md

このパネルの中身を、URL の先にあるファイルの中身まで含めて 1 つにまとめた Markdown

依頼文

1.2 KB
以下の仕様でスライドを 1 枚作ってください。

- 版面 1920 × 1080
- 余白 上 100 右 140 下 100 左 140

## 文字(版面 1920px に対する px)
title  46px / 700 / 字間 0.01em
subtitle  22px / 500
axisTitle  22px / 700
tick  20px / 500
axisLabel  22px / 500
legend  22px / 500
takeaway  28px / 500
note  20px / 400

## 配色
地 #FFFFFF / 面 #F4F6F9 / 文字 #131820 / 補助 #667183 / 強調 #1F5FA8 / 罫 #DBE1E9

## 外すと崩れる点
- 世帯を所得の低い順に並べ、20%刻みの累積世帯比と累積所得比を対応させる
- 完全平等線は同じ世帯比と所得比を結ぶ。曲線がその線から離れるほど分布が偏っている
- 累積比は0%から100%まで単調に進み、最後は必ず100%で交わる
- 架空データと明記し、実データの対象期間・所得定義・世帯単位を混ぜない

内容は[ここに自分の内容を書く]に置き換えてください。寸法と配色はそのまま守ってください。
正確に再現する場合は、この HTML をそのまま使ってください: https://design-vault.pages.dev/designs/lorenz-curve-household-income-share/pattern.html

仕様

1.4 KB

/ai/designs/lorenz-curve-household-income-share.json

format: slide-16x9
density: medium
layout:
  kind: axis
  canvas:
    w: 1920
    h: 1080
  margin:
    top: 100
    right: 140
    bottom: 100
    left: 140
type:
  title:
    size: 46
    weight: 700
    tracking: 0.01em
  subtitle:
    size: 22
    weight: 500
  axisTitle:
    size: 22
    weight: 700
  tick:
    size: 20
    weight: 500
  axisLabel:
    size: 22
    weight: 500
  legend:
    size: 22
    weight: 500
  takeaway:
    size: 28
    weight: 500
  note:
    size: 20
    weight: 400
colors:
  ground: "#FFFFFF"
  surface: "#F4F6F9"
  ink: "#131820"
  muted: "#667183"
  accent: "#1F5FA8"
  rule: "#DBE1E9"
rules:
  - 世帯を所得の低い順に並べ、20%刻みの累積世帯比と累積所得比を対応させる
  - 完全平等線は同じ世帯比と所得比を結ぶ。曲線がその線から離れるほど分布が偏っている
  - 累積比は0%から100%まで単調に進み、最後は必ず100%で交わる
  - 架空データと明記し、実データの対象期間・所得定義・世帯単位を混ぜない

ファイル

pattern.html

5.7 KB

/designs/lorenz-curve-household-income-share/pattern.html — 版そのものの HTML。書体の部分集合ごと同梱で、開けばこの絵がそのまま出ます。

中身を見る
<!doctype html>
<meta charset="utf-8">
<title>世帯所得の分布 — 上位20%が所得の半分を占める</title>
<meta name="dv-font" content="Zen Kaku Gothic New:400;500;700">
<link rel="stylesheet" href="./font.css">
<style>
  :root {
    --ground: #FFFFFF;
    --surface: #F4F6F9;
    --ink: #131820;
    --muted: #667183;
    --accent: #1F5FA8;
    --rule: #DBE1E9;
  }

  * { box-sizing: border-box; margin: 0; }
  html, body { width: 1920px; height: 1080px; }
  body { font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif; }
  .artboard { width: 1920px; height: 1080px; padding: 100px 140px; background: var(--ground); color: var(--ink); }
  .content { width: 100%; height: 100%; position: relative; }
  .figure { position: absolute; left: -140px; top: -100px; width: 1920px; height: 1080px; }
</style>

<div class="artboard" data-artboard>
  <div class="content" data-content>
    <svg class="figure" width="1920" height="1080" viewBox="0 0 1920 1080" xmlns="http://www.w3.org/2000/svg" role="img" aria-label="架空データのLorenz曲線。下位80%の世帯が所得の50%を得ており、上位20%が残りの50%を占める。">
      <style>
        .figure { font-family: "Zen Kaku Gothic New", "Hiragino Sans", sans-serif; }
        .ground { fill: var(--ground); }
        .ink { fill: var(--ink); }
        .muted { fill: var(--muted); }
        .rule { stroke: var(--rule); }
        .title { font-size: 46px; font-weight: 700; letter-spacing: .01em; }
        .subtitle { font-size: 22px; font-weight: 500; }
        .axis-title { font-size: 22px; font-weight: 700; }
        .tick { font-size: 20px; font-weight: 500; }
        .legend { font-size: 22px; font-weight: 500; }
        .takeaway { font-size: 28px; font-weight: 500; }
        .note { font-size: 20px; font-weight: 400; }
        .equality { fill: none; stroke: var(--muted); stroke-width: 4; stroke-dasharray: 12 10; }
        .lorenz { fill: none; stroke: var(--accent); stroke-width: 8; stroke-linejoin: round; stroke-linecap: round; }
        .point { fill: var(--ground); stroke: var(--accent); stroke-width: 5; }
      </style>
      <rect class="ground" width="1920" height="1080"/>

      <text class="ink title" data-type="title" x="140" y="153">世帯所得の分布 — 上位20%が所得の半分を占める</text>
      <text class="muted subtitle" data-type="subtitle" x="140" y="201">世帯を所得の低い順に並べた累積比 / 各20%の世帯ごとに所得シェアを集計</text>
      <line class="rule" x1="140" y1="238" x2="1780" y2="238" stroke-width="2"/>

      <text class="ink axis-title" data-type="axisTitle" x="930" y="300" text-anchor="middle">完全平等線からの離れ方で、所得の偏りを見る</text>
      <g class="rule" fill="none" stroke-width="1.5">
        <line x1="380" y1="320" x2="380" y2="755"/>
        <line x1="598" y1="320" x2="598" y2="755"/>
        <line x1="816" y1="320" x2="816" y2="755"/>
        <line x1="1034" y1="320" x2="1034" y2="755"/>
        <line x1="1252" y1="320" x2="1252" y2="755"/>
        <line x1="1470" y1="320" x2="1470" y2="755"/>
        <line x1="380" y1="755" x2="1470" y2="755"/>
        <line x1="380" y1="668" x2="1470" y2="668"/>
        <line x1="380" y1="581" x2="1470" y2="581"/>
        <line x1="380" y1="494" x2="1470" y2="494"/>
        <line x1="380" y1="407" x2="1470" y2="407"/>
        <line x1="380" y1="320" x2="1470" y2="320"/>
      </g>

      <!-- Each step represents one equal 20% household group. Values are cumulative shares. -->
      <path class="equality" d="M380 755 L1470 320"/>
      <path class="lorenz" d="M380 755 L598 733.25 L816 694.1 L1034 637.55 L1252 537.5 L1470 320"/>
      <g>
        <circle class="point" cx="380" cy="755" r="8"/>
        <circle class="point" cx="598" cy="733.25" r="8"/>
        <circle class="point" cx="816" cy="694.1" r="8"/>
        <circle class="point" cx="1034" cy="637.55" r="8"/>
        <circle class="point" cx="1252" cy="537.5" r="8"/>
        <circle class="point" cx="1470" cy="320" r="8"/>
      </g>

      <g class="muted tick" text-anchor="middle" dominant-baseline="central">
        <text data-type="tick" x="380" y="785">0%</text>
        <text x="598" y="785">20%</text>
        <text x="816" y="785">40%</text>
        <text x="1034" y="785">60%</text>
        <text x="1252" y="785">80%</text>
        <text x="1470" y="785">100%</text>
        <text x="340" y="755">0%</text>
        <text x="340" y="668">20%</text>
        <text x="340" y="581">40%</text>
        <text x="340" y="494">60%</text>
        <text x="340" y="407">80%</text>
        <text x="340" y="320">100%</text>
      </g>
      <text class="ink legend" data-type="axisLabel" x="925" y="835" text-anchor="middle">累積世帯の割合(所得の低い順)</text>
      <text class="muted legend" x="140" y="300">累積所得の割合</text>

      <line x1="555" y1="882" x2="615" y2="882" stroke="var(--muted)" stroke-width="4" stroke-dasharray="12 10"/>
      <text class="muted legend" data-type="legend" x="630" y="882" dominant-baseline="central">完全平等線</text>
      <line x1="1005" y1="882" x2="1065" y2="882" stroke="var(--accent)" stroke-width="8" stroke-linecap="round"/>
      <circle class="point" cx="1035" cy="882" r="7"/>
      <text class="ink legend" x="1080" y="882" dominant-baseline="central">架空の世帯所得</text>

      <text class="ink takeaway" data-type="takeaway" x="960" y="938" text-anchor="middle">下位80%が所得の50%を受け取り、上位20%が残りの半分を占める</text>
      <line class="rule" x1="140" y1="974" x2="1780" y2="974" stroke-width="1"/>
      <text class="muted note" data-type="note" x="140" y="1013">架空データ。格差を比較するには、対象期間・所得定義・世帯単位を揃える。</text>
    </svg>
  </div>
</div>

font.css

2.9 KB

/designs/lorenz-curve-household-income-share/font.css — 全部入りには入れていない

中身を見る
/* dv-subset v2 — generated by scripts/subset-font.mjs. Do not edit.
 * font    Zen Kaku Gothic New 400;500;700
 * chars   88 (b47d8023b8e6bcae)
 *
 * pattern.html の文字だけを含む部分集合。描画時に外部へ取りに行かないよう同梱する。
 * 版の文字を変えたら取り直すこと — 忘れると足りない字が豆腐になる。
 * その取り忘れは pattern-entries.test.ts が上の指紋で検出する。
 */

@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 400;
  font-display: block;
  src: url(./font-0.woff2) format('woff2');
  unicode-range: U+25, U+2f-32, U+34-36, U+38, U+2014, U+3001-3002, U+3044, U+3048, U+304b-304c, U+3051-3054, U+3059-305a, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+3078-3079, U+3081, U+3089-308c, U+3092, U+3099, U+30a2, U+30a7, U+30b7-30b8, U+30bf-30c0, U+30c6-30c7, U+30fb-30fc, U+4e0a-4e0b, U+4e16, U+4e26, U+4f4d-4f4e, U+504f, U+5168, U+5206, U+5272, U+534a, U+5358, U+5360, U+53d6-53d7, U+5404, U+5408, U+5b8c, U+5b9a, U+5bfe, U+5dee, U+5e03, U+5e2f, U+5e73, U+5f97, U+6240, U+63c3, U+65b9, U+671f, U+67b6, U+683c, U+6b8b, U+6bd4, U+7a4d, U+7a7a, U+7b49, U+7d2f, U+7dda, U+7fa9, U+898b, U+8a08, U+8c61, U+8f03, U+9593, U+96c6, U+96e2, U+9806, U+ff08-ff09;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 500;
  font-display: block;
  src: url(./font-1.woff2) format('woff2');
  unicode-range: U+25, U+2f-32, U+34-36, U+38, U+2014, U+3001-3002, U+3044, U+3048, U+304b-304c, U+3051-3054, U+3059-305a, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+3078-3079, U+3081, U+3089-308c, U+3092, U+3099, U+30a2, U+30a7, U+30b7-30b8, U+30bf-30c0, U+30c6-30c7, U+30fb-30fc, U+4e0a-4e0b, U+4e16, U+4e26, U+4f4d-4f4e, U+504f, U+5168, U+5206, U+5272, U+534a, U+5358, U+5360, U+53d6-53d7, U+5404, U+5408, U+5b8c, U+5b9a, U+5bfe, U+5dee, U+5e03, U+5e2f, U+5e73, U+5f97, U+6240, U+63c3, U+65b9, U+671f, U+67b6, U+683c, U+6b8b, U+6bd4, U+7a4d, U+7a7a, U+7b49, U+7d2f, U+7dda, U+7fa9, U+898b, U+8a08, U+8c61, U+8f03, U+9593, U+96c6, U+96e2, U+9806, U+ff08-ff09;
}
@font-face {
  font-family: 'Zen Kaku Gothic New';
  font-style: normal;
  font-weight: 700;
  font-display: block;
  src: url(./font-2.woff2) format('woff2');
  unicode-range: U+25, U+2f-32, U+34-36, U+38, U+2014, U+3001-3002, U+3044, U+3048, U+304b-304c, U+3051-3054, U+3059-305a, U+305f-3060, U+3066-3069, U+306b, U+306e-3070, U+3078-3079, U+3081, U+3089-308c, U+3092, U+3099, U+30a2, U+30a7, U+30b7-30b8, U+30bf-30c0, U+30c6-30c7, U+30fb-30fc, U+4e0a-4e0b, U+4e16, U+4e26, U+4f4d-4f4e, U+504f, U+5168, U+5206, U+5272, U+534a, U+5358, U+5360, U+53d6-53d7, U+5404, U+5408, U+5b8c, U+5b9a, U+5bfe, U+5dee, U+5e03, U+5e2f, U+5e73, U+5f97, U+6240, U+63c3, U+65b9, U+671f, U+67b6, U+683c, U+6b8b, U+6bd4, U+7a4d, U+7a7a, U+7b49, U+7d2f, U+7dda, U+7fa9, U+898b, U+8a08, U+8c61, U+8f03, U+9593, U+96c6, U+96e2, U+9806, U+ff08-ff09;
}

ノート

視覚的な問い

世帯を所得順に並べたとき、累積所得の分布は完全平等線からどれだけ離れるか。

構造

横軸は累積世帯比、縦軸は累積所得比。破線は両比率が一致する完全平等線で、実線は所得順に 積み上げた架空データである。上位20%が所得の50%を占めるため、下位80%の累積点は50%になる。

散布図のように異なる項目どうしの相関を示す図ではない。等しい世帯比を区切りとして所得シェアを 積み上げ、対角線からの離れ具合を分布の偏りとして読む。