디자인킷 · 그래프
매체별 효율 산점도(비용 지수 × 전환 지수, 사분면)
D-그래프-매체효율-사분면
언제 쓰는가
매체를 비용과 전환 두 기준으로 찍어 확대·유지·점검·축소로 나누는 장면. 매체 진단, 예산 재배분 제안. 점 5~8개. 확대 사분면 바탕과 그 안의 점만 강조색. 값 바꾸는 법: 점 x = 60 + (비용 지수 − 40) ÷ 120 × 968, y = 252 − (전환 지수 − 40) ÷ 120 × 232(두 축 모두 40~160, 평균 100이 가운데 점선). 범위를 벗어나는 값이 있으면 40과 120을 같이 넓힘. 왼쪽 위 사분면의 점만 class dot, 이름 class va. 나머지는 dot s, 이름 class k. 이름은 점 오른쪽 14px, 겹치면 text-anchor end 로 점 왼쪽에 배치.
참고
Supermetrics 유료 매체 믹스 대시보드(https://supermetrics.com/blog/looker-studio-examples)의 채널 효율 비교와 컨설팅 2×2 매트릭스 표기(https://deckary.com/blog/present-data-effectively-powerpoint), Financial Times Visual Vocabulary(https://github.com/Financial-Times/chart-doctor/tree/main/visual-vocabulary) Correlation 분류의 산점도 참고. 금액 대신 평균 100 지수로 직접 제작.
조각
<div class="dk dk-quad"> <div class="dk-card"> <p class="ttl"><span>매체별 전환 1건당 비용 지수와 전환 지수 · 최근 3개월</span></p> <svg width="1088" height="296" viewBox="0 0 1088 296" role="img"> <rect x="60" y="20" width="484" height="116" rx="0" class="aw"/> <rect x="60" y="20" width="968" height="232" class="ax"/> <line x1="544" y1="20" x2="544" y2="252" class="tg"/> <line x1="60" y1="136" x2="1028" y2="136" class="tg"/> <text x="72" y="40" class="va">확대 · 비용 낮고 전환 많음</text> <text x="1016" y="40" text-anchor="end" class="k">유지 · 비용 관리</text> <text x="72" y="242" class="k">점검 · 소재와 타깃 조정</text> <text x="1016" y="242" text-anchor="end" class="k">축소 · 예산 이동</text> <text x="48" y="24" text-anchor="end">160</text> <text x="48" y="140" text-anchor="end">100</text> <text x="48" y="256" text-anchor="end">40</text> <text x="60" y="12">전환 지수</text> <text x="60" y="270" text-anchor="middle">40</text> <text x="544" y="270" text-anchor="middle">100</text> <text x="1028" y="270" text-anchor="middle">160</text> <text x="544" y="290" text-anchor="middle">전환 1건당 비용 지수 · 매체 평균 100 · 왼쪽일수록 저렴</text> <circle cx="237.5" cy="43.2" r="8" class="dot"/> <text x="251.5" y="48.2" class="va">브랜드 검색</text> <circle cx="366.5" cy="85.7" r="8" class="dot"/> <text x="380.5" y="90.7" class="va">쇼핑 검색</text> <circle cx="640.8" cy="70.3" r="7" class="dot s"/> <text x="654.8" y="75.3" class="k">일반 검색</text> <circle cx="576.3" cy="151.5" r="7" class="dot s"/> <text x="590.3" y="156.5" class="k">SNS 피드</text> <circle cx="302" cy="166.9" r="7" class="dot s"/> <text x="316" y="171.9" class="k">리타게팅</text> <circle cx="850.5" cy="186.3" r="7" class="dot s"/> <text x="864.5" y="191.3" class="k">영상</text> <circle cx="737.6" cy="221.1" r="7" class="dot s"/> <text x="751.6" y="226.1" class="k">디스플레이</text> </svg> <p class="note">예시 수치는 가상 값 · 실제 집계 값과 출처, 집계 기간으로 교체</p> </div> </div>
스타일
.dk-quad .dk-card{padding:22px 32px 20px}
.dk-quad .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-quad .lg{display:flex;gap:var(--s4);font-weight:400}
.dk-quad .lg span{display:flex;align-items:center;gap:6px}
.dk-quad .lg i{display:block;width:12px;height:12px;border-radius:3px}
.dk-quad .lg i.c-a{background:var(--ac)}
.dk-quad .lg i.c-w{background:var(--acw)}
.dk-quad .lg i.c-s{background:var(--soft)}
.dk-quad .lg i.c-g1{background:var(--g1)}
.dk-quad .lg i.c-g2{background:var(--g2)}
.dk-quad .lg i.c-g3{background:var(--g3)}
.dk-quad .lg i.c-g4{background:var(--g4)}
.dk-quad .lg i.c-o{background:none;border:2px solid var(--ac)}
.dk-quad .lg i.c-e{background:var(--soft);border:1px dashed var(--g3)}
.dk-quad .lg i.c-t{width:14px;height:3px;border-radius:0;background:var(--ink)}
.dk-quad .note{font-size:var(--f-cap);color:var(--mu);margin:var(--s3) 0 0}
.dk-quad svg{display:block}
.dk-quad svg text{font-family:inherit;font-size:13px;fill:var(--mu);font-variant-numeric:tabular-nums}
.dk-quad svg .a{fill:var(--ac)}
.dk-quad svg .aw{fill:var(--acw)}
.dk-quad svg .sf{fill:var(--soft)}
.dk-quad svg .g1{fill:var(--g1)}
.dk-quad svg .g2{fill:var(--g2)}
.dk-quad svg .g3{fill:var(--g3)}
.dk-quad svg .g4{fill:var(--g4)}
.dk-quad svg .ax{stroke:var(--line2);stroke-width:1;fill:none}
.dk-quad svg .gr{stroke:var(--line);stroke-width:1;fill:none}
.dk-quad svg .tg{stroke:var(--g3);stroke-width:1;stroke-dasharray:4 4;fill:none}
.dk-quad svg text.k{fill:var(--ink2)}
.dk-quad svg text.v{fill:var(--ink);font-weight:600}
.dk-quad svg text.va{fill:var(--ac);font-weight:700}
.dk-quad svg text.on{fill:var(--card);font-weight:600}
.dk-quad svg text.big{font-size:24px;font-weight:700}
.dk-quad svg text.md{font-size:16px}
.dk-quad svg .ln{fill:none;stroke:var(--g4);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
.dk-quad svg .ln.hot{stroke:var(--ac)}
.dk-quad svg .ln.sub{stroke:var(--g2);stroke-width:2}
.dk-quad svg .dot{fill:var(--ac);stroke:var(--card);stroke-width:2}
.dk-quad svg .dot.m{fill:var(--g4)}
.dk-quad svg .dot.s{fill:var(--g2)}
.dk-quad svg .ol{fill:none;stroke:var(--ac);stroke-width:2.5}
.dk-quad svg .al{stroke:var(--ac);stroke-width:1.5;fill:none}