제안 시스템

디자인킷 · 그래프

월별 검색량 추이와 성수기 음영

D-그래프-검색량-성수기음영

월별 검색량 추이와 성수기 음영

언제 쓰는가

검색 수요의 계절성을 보여 주고 집행 시작 시점의 근거로 쓰는 장면. 시점 12개(월) 고정, 성수기 구간 1개(연속 2~4개월). 성수기 띠와 최고점만 강조색, 선은 무채색. 값 바꾸는 법: 점 x = 64 + 87.3 × 월 순번(0~11), y = 262 − 지수 ÷ 100 × 210. 성수기 띠 rect: x = 시작 월 x − 43, width = (끝 월 x − 시작 월 x) + 86. 띠 아래 문구의 비율 = 성수기 월 지수 합 ÷ 12개월 지수 합. 점선(class tg)은 수요가 오르기 시작하는 달의 x 로 이동, 설명 문구는 점선 왼쪽에 text-anchor end.

참고

네이버 데이터랩 검색어트렌드(https://datalab.naver.com/keyword/trendSearch.naver)와 구글 트렌드(https://trends.google.com)의 "최고 시점 100 기준 상대 지수" 표기 방식, Storytelling with Data(https://www.storytellingwithdata.com)의 구간 음영으로 맥락을 주는 방식 참고. 직접 제작.

조각

<div class="dk dk-seas">
<div class="dk-card">
<p class="ttl"><span>월별 검색량 지수 · 최고 월 100 기준 · 최근 12개월</span></p>
<svg width="1088" height="292" viewBox="0 0 1088 292" role="img">
<rect x="370.2" y="22" width="260.6" height="240" rx="0" class="aw"/>
<text x="500.5" y="14" text-anchor="middle" class="va">성수기 5~7월</text>
<text x="500.5" y="250" text-anchor="middle" class="va">연간 검색량의 38%</text>
<line x1="44" y1="262" x2="1044" y2="262" class="ax"/>
<text x="32" y="266" text-anchor="end">0</text>
<line x1="44" y1="157" x2="1044" y2="157" class="gr"/>
<text x="32" y="161" text-anchor="end">50</text>
<text x="32" y="56" text-anchor="end">100</text>
<line x1="325.9" y1="30" x2="325.9" y2="262" class="tg"/>
<text x="317.9" y="42" text-anchor="end" class="k">집행 시작 권장 · 4월</text>
<text x="317.9" y="60" text-anchor="end">수요 상승 1개월 전</text>
<text x="64" y="284" text-anchor="middle">1월</text>
<text x="151.3" y="284" text-anchor="middle">2월</text>
<text x="238.6" y="284" text-anchor="middle">3월</text>
<text x="325.9" y="284" text-anchor="middle">4월</text>
<text x="413.2" y="284" text-anchor="middle">5월</text>
<text x="500.5" y="284" text-anchor="middle">6월</text>
<text x="587.8" y="284" text-anchor="middle">7월</text>
<text x="675.1" y="284" text-anchor="middle">8월</text>
<text x="762.4" y="284" text-anchor="middle">9월</text>
<text x="849.7" y="284" text-anchor="middle">10월</text>
<text x="937" y="284" text-anchor="middle">11월</text>
<text x="1024.3" y="284" text-anchor="middle">12월</text>
<polyline points="64,182.2 151.3,175.9 238.6,152.8 325.9,119.2 413.2,77.2 500.5,52 587.8,64.6 675.1,112.9 762.4,146.5 849.7,163.3 937,171.7 1024.3,178" class="ln"/>
<circle cx="64" cy="182.2" r="4.5" class="dot m"/>
<text x="64" y="170.2" text-anchor="middle" class="v">38</text>
<circle cx="1024.3" cy="178" r="4.5" class="dot m"/>
<text x="1024.3" y="166" text-anchor="middle" class="v">40</text>
<circle cx="500.5" cy="52" r="6.5" class="dot"/>
<text x="500.5" y="38" text-anchor="middle" class="va md">100</text>
</svg>
<p class="note">예시 수치는 가상 값 · 실제 집계 값과 출처, 집계 기간으로 교체</p>
</div>
</div>

스타일

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