막대 차트
카테고리별 값을 세로 막대로 비교하는 표현 전용 차트. 막대는 얇게(≤24px)·데이터 끝만 둥글고, 격자선은 실선 헤어라인이다. 음수는 0 기준선 아래로 내려간다(손익 · 증감 · 예산 대비). 계열이 여러 개면 그룹(나란히) 또는 stacked(누적)로, 누적은 양수 · 음수를 0 위아래로 따로 쌓는다. 2계열 이상이면 범례가 자동으로 붙는다.
상태
1분기
매출120
2분기
매출190
3분기
매출150
4분기
매출240
1분기
올해120
작년90
2분기
올해190
작년110
3분기
올해150
작년140
4분기
올해240
작년160
1분기
신규60
재구매60
합계120
2분기
신규90
재구매100
합계190
3분기
신규70
재구매80
합계150
4분기
신규120
재구매120
합계240
1분기
전월 대비+24만
2분기
전월 대비-18만
3분기
전월 대비+9만
4분기
전월 대비-6만
활용 방법
분기별 매출 구성 (누적)
stacked 를 주면 계열이 아래→위로 누적되고, 세그먼트 사이는 2px 서페이스 갭으로 구분된다. hover 하면 계열별 값 + 합계가 title 로 나온다.
1분기
신규60만
재구매60만
제휴20만
합계140만
2분기
신규90만
재구매100만
제휴30만
합계220만
3분기
신규70만
재구매80만
제휴25만
합계175만
4분기
신규120만
재구매120만
제휴40만
합계280만
<BarChartheight={200}stackedcategories={["1분기", "2분기", "3분기", "4분기"]}series={[{ label: "신규", values: [60, 90, 70, 120] },{ label: "재구매", values: [60, 100, 80, 120] },{ label: "제휴", values: [20, 30, 25, 40] },]}formatValue={(v) => `${v}만`}/>
월 예산 기준선 (references)
기준선을 넘은 달이 한눈에 보인다. 음수 데이터가 없으면 축 바닥은 0 이라 음수 기준값은 축을 넓히지 않는다.
5월
경비320만
6월
경비410만
7월
경비380만
8월
경비520만
9월
경비360만
10월
경비450만
<BarChartcategories={months}series={[{ label: "경비", values }]}references={[{ label: "월 예산", value: 450, tone: "danger" }]}formatValue={(v) => `${v}만`}/>
월별 손익 구성 (누적, 양수 · 음수)
누적에서 양수는 0 위로, 음수는 0 아래로 계열 순서대로 따로 쌓인다. 툴팁의 합계는 양수와 음수를 더한 순합(그달의 순이익)이다. 음수 데이터가 있을 때만 축이 0 아래로 열린다.
5월
매출420만
기타 수익30만
인건비-260만
운영비-120만
합계70만
6월
매출380만
기타 수익20만
인건비-260만
운영비-150만
합계-10만
7월
매출510만
기타 수익40만
인건비-270만
운영비-110만
합계170만
8월
매출460만
기타 수익25만
인건비-270만
운영비-130만
합계85만
9월
매출300만
기타 수익10만
인건비-280만
운영비-140만
합계-110만
10월
매출490만
기타 수익35만
인건비-280만
운영비-120만
합계125만
<BarChartstackedcategories={months}series={[{ label: "매출", values: sales },{ label: "기타 수익", values: other },{ label: "인건비", values: payroll.map((v) => -v) },{ label: "운영비", values: opex.map((v) => -v) },]}formatValue={(v) => `${v}만`}/>
속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| categories | string[] | - | x축 카테고리 라벨 |
| series | BarSeries[] | - | 계열 배열: { label, values(categories 와 같은 길이, 음수는 0 아래로), tone? } |
| stacked | boolean | false | true=누적, false=그룹(나란히) |
| height | number | 200 | 플롯 영역 높이(px) |
| formatValue | (v: number) => string | ko-KR 콤마 | y축·툴팁 값 포맷 |
| references | ChartReference[] | - | 기준선 { label, value, tone? } · 기준 구간 { label, from, to, tone? }. 점선 · 옅은 면으로 그리고 축 범위가 이 값을 포함한다 |
| series[].hrefs | (string | undefined)[] | - | values 와 같은 자리의 링크. 묶음이면 막대 자리 전체 높이, 쌓기면 그 토막을 눌러 그 값의 목록으로 간다 |