제안 시스템

디자인킷 · 반폭

반폭 · 1계열 라인과 끝점 강조(6~10시점)

D-반폭-라인1계열

반폭 · 1계열 라인과 끝점 강조(6~10시점)

언제 쓰는가

한 지표가 기간 동안 어떻게 변했는지를 절반 칸에. 시점 6~10개. 마지막 값만 크게 적고 나머지는 선으로만 표시. 시작 값은 작게. 값 바꾸는 법: 점 x = 36 + (300 ÷ (시점 수 − 1)) × (순번 − 1), y = 196 − (값 − 축 최솟값) ÷ (축 최댓값 − 축 최솟값) × 176(예시 축 80~180). polyline points 에 "x,y" 를 차례로 적는다. 끝점 circle.dot 의 cx·cy = 마지막 점, 큰 값 글자 x = 348, y = 끝점 y + 2, 시점 이름은 그 아래 18. 왼쪽 눈금 글자 3개(최솟값·중간·최댓값)와 아래 시점 글자를 값에 맞게 교체.

참고

Storytelling with Data(https://www.storytellingwithdata.com)의 선 끝 직접 라벨(범례 제거)과 Financial Times Visual Vocabulary(https://github.com/Financial-Times/chart-doctor/tree/main/visual-vocabulary)의 Change over Time 분류를 참고. 직접 제작.

조각

<div class="dk dkh dkh-g-line1"><div class="dk-card"><p class="dk-lb">주차별 브랜드 검색량 지수 · 집행 첫 주 100 기준</p>
<div class="cv"><svg width="100%" viewBox="0 0 400 224" preserveAspectRatio="xMidYMid meet" role="img">
<line x1="36" y1="196" x2="336" y2="196" class="ax"/><text x="28" y="200" text-anchor="end">80</text>
<line x1="36" y1="108" x2="336" y2="108" class="gr"/><text x="28" y="112" text-anchor="end">130</text>
<line x1="36" y1="20" x2="336" y2="20" class="gr"/><text x="28" y="24" text-anchor="end">180</text>
<text x="36" y="216" text-anchor="middle">1주</text><text x="78.9" y="216" text-anchor="middle">2주</text><text x="121.7" y="216" text-anchor="middle">3주</text><text x="164.6" y="216" text-anchor="middle">4주</text><text x="207.4" y="216" text-anchor="middle">5주</text><text x="250.3" y="216" text-anchor="middle">6주</text><text x="293.1" y="216" text-anchor="middle">7주</text><text x="336" y="216" text-anchor="middle">8주</text>
<polyline points="36,160.8 78.9,153.8 121.7,139.7 164.6,129.1 207.4,106.2 250.3,86.9 293.1,64 336,41.1" class="ln"/>
<circle cx="36" cy="160.8" r="4" class="d0"/><text x="38" y="150.8" text-anchor="middle">100</text><circle cx="336" cy="41.1" r="6" class="dot"/><text x="348" y="43.1" class="va big">168</text><text x="348" y="61.1">8주차</text>
</svg></div>
<p class="nt">예시 값 · 실제 집계 값과 기간으로 교체</p></div></div>

스타일

.dkh-g-line1 .dk-card{display:flex;flex-direction:column;padding:20px 26px 18px}
.dkh-g-line1 .dk-lb{flex:none;margin:0 0 10px}
.dkh-g-line1 .nt{flex:none;font-size:var(--f-cap);color:var(--mu);margin:8px 0 0}
.dkh-g-line1 .cv{flex:1;min-height:0;position:relative}
.dkh-g-line1 .cv svg{position:absolute;left:0;top:0;width:100%;height:100%;display:block}
.dkh-g-line1 svg text{font-family:inherit;font-size:13px;fill:var(--mu);font-variant-numeric:tabular-nums}
.dkh-g-line1 svg .k{fill:var(--ink2)}
.dkh-g-line1 svg .v{fill:var(--ink);font-weight:600}
.dkh-g-line1 svg .va{fill:var(--ac);font-weight:700}
.dkh-g-line1 svg .on{fill:var(--card);font-weight:600}
.dkh-g-line1 svg .t14{font-size:14px}
.dkh-g-line1 svg .f-a{fill:var(--ac)}
.dkh-g-line1 svg .f-w{fill:var(--acw)}
.dkh-g-line1 svg .f-s{fill:var(--soft)}
.dkh-g-line1 svg .f-c{fill:var(--card)}
.dkh-g-line1 svg .f-g1{fill:var(--g1)}
.dkh-g-line1 svg .f-g2{fill:var(--g2)}
.dkh-g-line1 svg .f-g3{fill:var(--g3)}
.dkh-g-line1 svg .f-g4{fill:var(--g4)}
.dkh-g-line1 svg .ax{stroke:var(--line2);stroke-width:1;fill:none}
.dkh-g-line1 svg .gr{stroke:var(--line);stroke-width:1;fill:none}
.dkh-g-line1 svg .ln{fill:none;stroke:var(--ac);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.dkh-g-line1 svg .dot{fill:var(--ac);stroke:var(--card);stroke-width:2}
.dkh-g-line1 svg .d0{fill:var(--card);stroke:var(--ac);stroke-width:2}
.dkh-g-line1 svg .big{font-size:22px}