Marimekko Chart
chartAlso known as: mosaic plot, mekko chart, variable-width bar chart
설명 / Description
마리메코 차트(모자이크 플롯이라고도 함)는 각 열의 너비를 각 세그먼트의 높이에 더해 변화시킴으로써 누적 막대 차트를 확장한 차트입니다. 열의 너비는 한 범주의 전체 크기(예: 특정 지역의 시장 규모)를 인코딩하고, 각 열 내의 누적 세그먼트는 구성(예: 서로 다른 제품의 시장 점유율)을 보여줍니다. 그 결과 전체 플롯 영역을 채우는 직사각형 영역이 만들어지며, 각 셀의 면적은 전체 합계에 대한 기여도에 비례합니다.
A Marimekko chart (also known as a mosaic plot) extends the stacked bar chart by varying the width of each column in addition to the height of each segment. The width of a column encodes the total size of one category (e.g., market size of a region), while the stacked segments within each column show the composition (e.g., market share of different products). The result is a rectangular area that fills the entire plotting region, with every cell's area proportional to its contribution to the grand total.
이 이중 인코딩 -- 한 차원은 너비로, 다른 차원은 높이로 -- 은 마리메코 차트를 범주의 크기와 구성이 동시에 어떻게 달라지는지 보여주는 데 독보적으로 적합하게 만듭니다. "A 지역이 B 지역보다 시장이 클 뿐 아니라, 제품 구성도 다르다"와 같은 질문에 답할 수 있습니다. 각 셀의 면적은 열 너비와 행 높이의 곱이므로, 세 번째 암묵적 인코딩을 제공합니다.
This double encoding -- width for one dimension, height for another -- makes the Marimekko chart uniquely suited for showing how both the size and composition of categories vary simultaneously. It answers questions like "not only does Region A have a larger market than Region B, but it also has a different product mix." The area of each cell is the product of its column width and row height, providing a third implicit encoding.
마리메코 차트는 정보 밀도가 높지만 신중한 설계가 필요합니다. 가변 너비 열은 막대가 공통 기준선이나 너비에 정렬되지 않기 때문에 열 간 세그먼트 높이를 비교하기 어렵게 만듭니다. 레이블과 툴팁은 가독성에 필수적입니다. 이 차트는 축당 적당한 수의 범주(3-7개)와 정교한 차트 유형에 익숙한 청중에게 가장 잘 작동합니다.
Marimekko charts are information-dense but demand careful design. Variable-width columns make it harder to compare segment heights across columns because the bars are not aligned to a common baseline or width. Labels and tooltips are essential for readability. The chart works best with a moderate number of categories (3-7 per axis) and audiences comfortable with sophisticated chart types.
언제 사용하나 / When to Use
- 세그먼트와 지역에 걸친 시장 점유율을 동시에 표시
- Showing market share across segments AND regions simultaneously
- 범주의 크기와 내부 구성이 함께 어떻게 달라지는지 시각화
- Visualizing how both the size of categories and their internal composition vary
- 절대 크기와 상대적 구성이 모두 중요한 전략 분석
- Strategic analysis where both absolute size and relative mix matter
- 전체 규모가 다른 개체들의 포트폴리오 구성 비교
- Comparing portfolio compositions across entities of different total sizes
이럴 땐 피하세요 / When NOT to Use
- 개별 세그먼트의 정밀한 비교가 필수적일 때 -- 가변 너비가 비교를 방해하므로 그룹 막대 차트를 사용하세요
- When precise comparison of individual segments is essential -- variable widths impede comparison; use a grouped bar chart
- 어느 한 축에라도 범주가 많을 때(7개 초과) -- 셀이 너무 작아져 읽기 어려워집니다
- When there are many categories on either axis (>7) -- cells become too small to read
- 이 차트 유형에 익숙하지 않은 청중의 경우 -- 이중 인코딩은 설명이 필요합니다
- For audiences unfamiliar with the chart type -- the double encoding requires explanation
- 구성만 중요할 때(범주의 상대적 크기는 중요하지 않을 때) -- 균일한 너비의 누적 막대 차트를 사용하세요
- When only composition matters (not relative category sizes) -- use a stacked bar chart with uniform widths
구조 / Anatomy
- 열: 주요 범주마다 하나씩 있는 가변폭 세로 막대. 너비가 해당 범주의 전체 값을 인코딩합니다.
- Columns: Variable-width vertical bars, one per primary category. Width encodes that category's total value.
- 세그먼트: 각 열 내에 쌓인 직사각형. 높이(비율)가 하위 범주의 점유율을 인코딩하고, 면적이 절대적 기여도를 인코딩합니다.
- Segments: Stacked rectangles within each column. Height (proportion) encodes the sub-category's share. Area encodes absolute contribution.
- 범주 축: 하단에 주요 범주를 식별하는 레이블. 눈금 위치가 균일하지 않습니다.
- Category axis: Labels along the bottom identifying primary categories. Tick positions are not uniform.
- 구성 축: 세로 쪽에 있는 백분율 축(0-100%).
- Composition axis: A percentage axis (0-100%) on the vertical side.
- 셀 레이블: 하위 범주명이나 백분율을 보여주는 각 직사각형 내부의 텍스트.
- Cell labels: Text inside each rectangle showing the sub-category name or percentage.
- 너비 레이블: 너비를 결정하는 전체 값을 보여주는, 각 열 아래의 선택적 주석.
- Width labels: Optional annotations below each column showing the total value that determines width.
변형 / Variations
- 모자이크 플롯: 분할표를 시각화하는 데 쓰이는 통계적 버전으로, 셀 사이에 간격을 두고 표준화 잔차를 음영으로 표시하는 경우가 많습니다.
- Mosaic plot: The statistical version used for visualizing contingency tables, often with gaps between cells and standardized residual shading.
- 스파인 플롯: 너비만 달라지고 세그먼트가 100%로 쌓이는 1차원 변형.
- Spine plot: A one-dimensional variant where only width varies and segments stack to 100%.
- 백분율 마리메코: 모든 열이 동일한 높이(100%)로 정규화되지만 너비는 다르며, 구성 차이에만 초점을 맞춥니다.
- Percentage Marimekko: All columns are normalized to the same height (100%) but widths vary, focusing purely on composition differences.
- 중첩 마리메코: 여러 단계의 하위 범주를 중첩된 직사각형으로 인코딩합니다.
- Nested Marimekko: Multiple levels of sub-categories encoded through nested rectangles.
코드 레퍼런스 / Code Reference
// Observable Plot - normalized stacked bar (Marimekko approximation)
Plot.plot({
marks: [
Plot.barY(data, {
x: "region",
y: "revenue",
fill: "product",
offset: "expand",
tip: true
}),
Plot.ruleY([0, 1])
],
x: { label: "Region" },
y: { label: "Market Share", tickFormat: ".0%" },
color: { legend: true }
})