라인 차트
다계열 시계열 추이를 선으로 보여주는 표현 전용 차트. 토큰만 쓰고 서버 컴포넌트에서 렌더 가능하다. 격자선은 실선 헤어라인이다. 2계열 이상이면 계열 이름이 반드시 보여야 해서 범례가 자동으로 붙고, endLabels 를 주면 선 끝 라벨이 범례를 대신한다(카드 폭 24rem 미만이거나 라벨이 다 들어가지 않으면 범례로 돌아간다). rebase 를 주면 기준 시점 대비 % 로 비교한다. hover 시 title 로 값을 읽는다. 데이터 계산·포맷은 호출자 몫.
상태
1월
매출12
2월
매출18
3월
매출15
4월
매출24
5월
매출22
6월
매출30
7월
매출28
1월
올해12
작년8
2월
올해18
작년12
3월
올해15
작년14
4월
올해24
작년16
5월
올해22
작년15
6월
올해30
작년20
7월
올해28
작년22
1월
온라인30
매장40
제휴10
합계80
2월
온라인34
매장38
제휴12
합계84
3월
온라인38
매장41
제휴11
합계90
4월
온라인41
매장39
제휴15
합계95
5월
온라인45
매장42
제휴14
합계101
6월
온라인52
매장40
제휴18
합계110
7월
온라인58
매장43
제휴20
합계121
활용 방법
매출 추이 (영역 + 마지막 값 강조)
area 로 계열색 워시를 깔고, emphasizeLast 로 끝점 도트 + 값 라벨을 붙인다. labels 는 많으면 양 끝 포함 균등 솎아 표시된다.
1월
매출12백만
2월
매출18백만
3월
매출15백만
4월
매출24백만
5월
매출22백만
6월
매출30백만
7월
매출28백만
<LineChartheight={180}labels={["1월", "2월", "3월", "4월", "5월", "6월", "7월"]}series={[{ label: "매출", points: [12, 18, 15, 24, 22, 30, 28] }]}areaemphasizeLastformatValue={(v) => `${v}백만`}/>
목표선과 정상 범위 (references)
references 에 value 를 주면 점선 기준선, from · to 를 주면 옅은 기준 구간이 그려진다. 라벨은 선 오른쪽 위에 값과 함께 나오고, 축은 기준값까지 넓어진다.
1월
일 평균 주문42
2월
일 평균 주문48
3월
일 평균 주문39
4월
일 평균 주문55
5월
일 평균 주문61
6월
일 평균 주문58
7월
일 평균 주문66
<LineChartlabels={months}series={[{ label: "일 평균 주문", points }]}references={[{ label: "목표", value: 70, tone: "success" },{ label: "정상 범위", from: 40, to: 60 },]}/>
채널별 매출 구성비 (stack="percent")
칸마다 합을 100%로 맞춰 구성비가 어떻게 바뀌는지 보인다. 축은 %, 툴팁은 원래 값과 비중, 합계를 함께 보인다. 누적에서는 emphasizeLast를 쓰지 않는다.
1월
온라인30백만 (38%)
매장40백만 (50%)
제휴10백만 (13%)
합계80백만
2월
온라인34백만 (40%)
매장38백만 (45%)
제휴12백만 (14%)
합계84백만
3월
온라인38백만 (42%)
매장41백만 (46%)
제휴11백만 (12%)
합계90백만
4월
온라인41백만 (43%)
매장39백만 (41%)
제휴15백만 (16%)
합계95백만
5월
온라인45백만 (45%)
매장42백만 (42%)
제휴14백만 (14%)
합계101백만
6월
온라인52백만 (47%)
매장40백만 (36%)
제휴18백만 (16%)
합계110백만
7월
온라인58백만 (48%)
매장43백만 (36%)
제휴20백만 (17%)
합계121백만
<LineChartstack="percent"labels={months}series={[{ label: "온라인", points: online },{ label: "매장", points: store },{ label: "제휴", points: partner },]}/>
크기가 다른 계열 비교 (rebase)
매출(억)과 회원 수(명)처럼 크기가 다른 계열을 기준 시점 대비 % 로 바꿔 한 축에서 오르내림을 비교한다. 기준은 모든 계열이 0 보다 큰 첫 시점이고(그 앞은 선을 긋지 않는다), 툴팁은 원래 값과 % 를 함께 보인다. 축과 references 는 % 로 읽는다.
1월 (기준)
매출3.2 (0%)
회원820 (0%)
객단가39 (0%)
2월
매출3.5 (+9.4%)
회원860 (+4.9%)
객단가41 (+5.1%)
3월
매출3.4 (+6.3%)
회원940 (+15%)
객단가36 (-7.7%)
4월
매출4.1 (+28%)
회원990 (+21%)
객단가41 (+5.1%)
5월
매출4.6 (+44%)
회원1,010 (+23%)
객단가46 (+18%)
6월
매출5 (+56%)
회원1,080 (+32%)
객단가46 (+18%)
<LineChartrebaseendLabelslabels={months}series={[{ label: "매출", points: sales },{ label: "회원", points: members },{ label: "객단가", points: basket },]}/>
선 끝 라벨 (endLabels)
범례 대신 선 끝 오른쪽에 계열 이름과 마지막 값을 단다. 끝값이 가까워 라벨이 겹치면 위아래로 밀어낸다. 카드 폭이 24rem 보다 좁거나 계열이 많아 라벨이 높이에 다 들어가지 않으면 라벨 칸을 비우지 않고 위쪽 범례로 돌아간다.
1주
올해12
작년8
2주
올해18
작년12
3주
올해15
작년14
4주
올해24
작년16
5주
올해22
작년15
6주
올해30
작년20
7주
올해31
작년29
<LineChartendLabelslabels={weeks}series={[{ label: "올해", points: thisYear },{ label: "작년", points: lastYear },]}/>
속성
| 이름 | 타입 | 기본값 | 설명 |
|---|---|---|---|
| series | LineSeries[] | - | 계열 배열: { label, points(오래된→최신), tone? } |
| labels | string[] | - | x축 라벨(points 와 같은 길이). 많으면 균등 솎음 |
| height | number | 200 | 플롯 영역 높이(px) |
| area | boolean | false | 계열색 ~10% 워시 영역 채움 |
| rebase | boolean | false | 기준 시점 대비 % 로 그린다. 기준은 모든 계열이 0 보다 큰 첫 시점(없으면 이유 문구). 툴팁은 원래 값과 %, 축 · references 는 %. stack 과 함께면 stack 이 이긴다 |
| endLabels | boolean | false | 범례 대신 선 끝에 이름 · 마지막 값. 겹치면 밀어내고, 카드 폭 24rem 미만 · 다 들어가지 않으면 범례로 돌아간다. stack 에서는 쓰지 않는다 |
| emphasizeLast | boolean | false | 마지막 값 끝점 도트 + 값 라벨 |
| formatValue | (v: number) => string | ko-KR 콤마 | y축·툴팁 값 포맷 |
| stack | "normal" | "percent" | - | 누적 영역. normal 은 값을 쌓고 percent 는 칸마다 합을 100%로 맞춘다. 음수는 0 으로 본다 |
| references | ChartReference[] | - | 기준선 { label, value, tone? } · 기준 구간 { label, from, to, tone? }. 점선 · 옅은 면으로 그리고 축 범위가 이 값을 포함한다 |
| hrefs | (string | undefined)[] | - | 지점(x 자리)마다 링크. labels 와 같은 자리이고, 있는 지점 칸을 눌러 그 시점의 목록으로 간다 |