제안 시스템

디자인킷 · 그래프

지역별 수요 수평 막대(지도 대신, 2단)

D-그래프-지역별수요막대

지역별 수요 수평 막대(지도 대신, 2단)

언제 쓰는가

지역별 수요 차이를 보여 주고 우선 집행 지역을 정하는 장면. 지도 그림 대신 정렬된 막대 2단으로 값 비교를 정확하게. 지역 10~14개(단마다 5~7행). 우선 집행 지역 2~4곳만 강조색, 평균 100에 점선. 값 바꾸는 법: 막대 width = 지수 × 2.2, 왼쪽 단 x = 110, 오른쪽 단 x = 682, 행 y = 30 + 단 안 순번 × 36. 지수 내림차순으로 왼쪽 단부터 채움. 평균 점선 x = 단의 막대 시작 + 220. 값은 막대 안쪽 끝에 적어 평균 점선과 겹치지 않게 함. 우선 집행 지역만 막대 class a, 이름 class va, 값 class on.

참고

구글 트렌드(https://trends.google.com)의 "하위 지역별 관심도" 목록(지도 옆 정렬 막대)과 네이버 데이터랩 지역 통계(https://datalab.naver.com) 화면, Datawrapper의 "지도보다 막대가 값 비교에 정확" 안내(https://www.datawrapper.de/blog) 참고. 직접 제작.

조각

<div class="dk dk-region">
<div class="dk-card">
<p class="ttl"><span>시도별 인구 대비 검색 수요 지수 · 전국 평균 100 · 상위 14개</span></p>
<svg width="1088" height="284" viewBox="0 0 1088 284" role="img">
<line x1="330" y1="22" x2="330" y2="278" class="tg"/>
<text x="330" y="14" text-anchor="middle">전국 평균 100</text>
<text x="0" y="14">순위 · 지역</text>
<line x1="902" y1="22" x2="902" y2="278" class="tg"/>
<text x="902" y="14" text-anchor="middle">전국 평균 100</text>
<text x="572" y="14">순위 · 지역</text>
<text x="16" y="47" text-anchor="end">1</text>
<text x="34" y="47" class="va md">서울</text>
<rect x="110" y="30" width="369.6" height="22" rx="3" class="a"/>
<text x="471.6" y="46" text-anchor="end" class="on">168</text>
<text x="16" y="83" text-anchor="end">2</text>
<text x="34" y="83" class="va md">경기</text>
<rect x="110" y="66" width="334.4" height="22" rx="3" class="a"/>
<text x="436.4" y="82" text-anchor="end" class="on">152</text>
<text x="16" y="119" text-anchor="end">3</text>
<text x="34" y="119" class="va md">부산</text>
<rect x="110" y="102" width="266.2" height="22" rx="3" class="a"/>
<text x="368.2" y="118" text-anchor="end" class="on">121</text>
<text x="16" y="155" text-anchor="end">4</text>
<text x="34" y="155" class="k md">인천</text>
<rect x="110" y="138" width="250.8" height="22" rx="3" class="g2"/>
<text x="352.8" y="154" text-anchor="end" class="v">114</text>
<text x="16" y="191" text-anchor="end">5</text>
<text x="34" y="191" class="k md">대구</text>
<rect x="110" y="174" width="226.6" height="22" rx="3" class="g2"/>
<text x="328.6" y="190" text-anchor="end" class="v">103</text>
<text x="16" y="227" text-anchor="end">6</text>
<text x="34" y="227" class="k md">대전</text>
<rect x="110" y="210" width="215.6" height="22" rx="3" class="g2"/>
<text x="317.6" y="226" text-anchor="end" class="v">98</text>
<text x="16" y="263" text-anchor="end">7</text>
<text x="34" y="263" class="k md">광주</text>
<rect x="110" y="246" width="202.4" height="22" rx="3" class="g2"/>
<text x="304.4" y="262" text-anchor="end" class="v">92</text>
<text x="588" y="47" text-anchor="end">8</text>
<text x="606" y="47" class="k md">울산</text>
<rect x="682" y="30" width="193.6" height="22" rx="3" class="g2"/>
<text x="867.6" y="46" text-anchor="end" class="v">88</text>
<text x="588" y="83" text-anchor="end">9</text>
<text x="606" y="83" class="k md">세종</text>
<rect x="682" y="66" width="187" height="22" rx="3" class="g2"/>
<text x="861" y="82" text-anchor="end" class="v">85</text>
<text x="588" y="119" text-anchor="end">10</text>
<text x="606" y="119" class="k md">경남</text>
<rect x="682" y="102" width="178.2" height="22" rx="3" class="g2"/>
<text x="852.2" y="118" text-anchor="end" class="v">81</text>
<text x="588" y="155" text-anchor="end">11</text>
<text x="606" y="155" class="k md">충남</text>
<rect x="682" y="138" width="167.2" height="22" rx="3" class="g2"/>
<text x="841.2" y="154" text-anchor="end" class="v">76</text>
<text x="588" y="191" text-anchor="end">12</text>
<text x="606" y="191" class="k md">경북</text>
<rect x="682" y="174" width="158.4" height="22" rx="3" class="g2"/>
<text x="832.4" y="190" text-anchor="end" class="v">72</text>
<text x="588" y="227" text-anchor="end">13</text>
<text x="606" y="227" class="k md">전북</text>
<rect x="682" y="210" width="145.2" height="22" rx="3" class="g2"/>
<text x="819.2" y="226" text-anchor="end" class="v">66</text>
<text x="588" y="263" text-anchor="end">14</text>
<text x="606" y="263" class="k md">강원</text>
<rect x="682" y="246" width="134.2" height="22" rx="3" class="g2"/>
<text x="808.2" y="262" text-anchor="end" class="v">61</text>
</svg>
<p class="note">예시 수치는 가상 값 · 실제 집계 값과 출처, 집계 기간으로 교체</p>
</div>
</div>

스타일

.dk-region .dk-card{padding:22px 32px 20px}
.dk-region .ttl{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--f-cap);font-weight:600;color:var(--mu);margin:0 0 var(--s3)}
.dk-region .lg{display:flex;gap:var(--s4);font-weight:400}
.dk-region .lg span{display:flex;align-items:center;gap:6px}
.dk-region .lg i{display:block;width:12px;height:12px;border-radius:3px}
.dk-region .lg i.c-a{background:var(--ac)}
.dk-region .lg i.c-w{background:var(--acw)}
.dk-region .lg i.c-s{background:var(--soft)}
.dk-region .lg i.c-g1{background:var(--g1)}
.dk-region .lg i.c-g2{background:var(--g2)}
.dk-region .lg i.c-g3{background:var(--g3)}
.dk-region .lg i.c-g4{background:var(--g4)}
.dk-region .lg i.c-o{background:none;border:2px solid var(--ac)}
.dk-region .lg i.c-e{background:var(--soft);border:1px dashed var(--g3)}
.dk-region .lg i.c-t{width:14px;height:3px;border-radius:0;background:var(--ink)}
.dk-region .note{font-size:var(--f-cap);color:var(--mu);margin:var(--s3) 0 0}
.dk-region svg{display:block}
.dk-region svg text{font-family:inherit;font-size:13px;fill:var(--mu);font-variant-numeric:tabular-nums}
.dk-region svg .a{fill:var(--ac)}
.dk-region svg .aw{fill:var(--acw)}
.dk-region svg .sf{fill:var(--soft)}
.dk-region svg .g1{fill:var(--g1)}
.dk-region svg .g2{fill:var(--g2)}
.dk-region svg .g3{fill:var(--g3)}
.dk-region svg .g4{fill:var(--g4)}
.dk-region svg .ax{stroke:var(--line2);stroke-width:1;fill:none}
.dk-region svg .gr{stroke:var(--line);stroke-width:1;fill:none}
.dk-region svg .tg{stroke:var(--g3);stroke-width:1;stroke-dasharray:4 4;fill:none}
.dk-region svg text.k{fill:var(--ink2)}
.dk-region svg text.v{fill:var(--ink);font-weight:600}
.dk-region svg text.va{fill:var(--ac);font-weight:700}
.dk-region svg text.on{fill:var(--card);font-weight:600}
.dk-region svg text.big{font-size:24px;font-weight:700}
.dk-region svg text.md{font-size:16px}
.dk-region svg .ln{fill:none;stroke:var(--g4);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.dk-region svg .ln.hot{stroke:var(--ac)}
.dk-region svg .ln.sub{stroke:var(--g2);stroke-width:2}
.dk-region svg .dot{fill:var(--ac);stroke:var(--card);stroke-width:2}
.dk-region svg .dot.m{fill:var(--g4)}
.dk-region svg .dot.s{fill:var(--g2)}
.dk-region svg .ol{fill:none;stroke:var(--ac);stroke-width:2.5}
.dk-region svg .al{stroke:var(--ac);stroke-width:1.5;fill:none}