LineChart
트렌드와 시간에 따른 변화를 직관적으로 표현하는 꺾은선 차트 컴포넌트입니다. linear, monotone, step, natural 4가지 곡선 스타일과 시리즈별 호버 하이라이트를 지원합니다.
Playground
<Chart config={chartConfig} className="min-h-[200px]">
<LineChart accessibilityLayer data={chartData}>
<CartesianGrid vertical={false} />
<Chart.XAxis dataKey="month" tickLine={false} tickMargin={10} axisLine={false} />
<Chart.Tooltip content={<Chart.TooltipContent />} />
<Chart.Legend content={<Chart.LegendContent />} />
<Chart.Line dataKey="desktop" stroke="var(--color-desktop)" />
<Chart.Line dataKey="mobile" stroke="var(--color-mobile)" />
</LineChart>
</Chart>JSX Composition
Chart.*는 이 라이브러리에서, 그 외는 Recharts에서 임포트하세요.
<CartesianGrid /><Chart.YAxis /><Chart.Legend /> (다중 시리즈)<LabelList /> (단일 시리즈)Patterns
LineChart의 주요 표시 패턴입니다. 용도에 맞게 선택하세요.
Default
단일 시리즈 기본 꺾은선 그래프
Multiple Lines
여러 시리즈를 겹쳐 비교
Step Line
계단형 꺾은선 그래프 (type="step")
Dashed Line
실선과 파선 조합 (variant="dashed")
Tooltip Styles
Chart.TooltipContent의indicator prop으로 툴팁 인디케이터 형태를 변경할 수 있습니다.
Dot (default)
기본 도트 인디케이터
indicator="dot"Line
수직선 인디케이터
indicator="line"Dashed
파선 인디케이터
indicator="dashed"API
Component Structure
Chart— Recharts.LineProps라인 (type, variant, dot).XAxisX축.YAxisY축.Tooltip툴팁 래퍼.TooltipContentProps툴팁 내용.Legend범례 래퍼.LegendContent범례 내용Props
Chart
config—ChartConfig차트 설정 객체 (라벨 및 색상 정의)
children—ReactElementRecharts 차트 컴포넌트
idundefinedstringCSS 변수 스코핑을 위한 고유 차트 ID
hoverFadefalseboolean호버한 시리즈를 전체 불투명도로 표시하고 나머지를 페이드 아웃하는 하이라이트 효과를 활성화합니다
| Name | Type | Default | Description |
|---|---|---|---|
config | ChartConfig | — | 차트 설정 객체 (라벨 및 색상 정의) |
children | ReactElement | — | Recharts 차트 컴포넌트 |
id | string | undefined | CSS 변수 스코핑을 위한 고유 차트 ID |
hoverFade | boolean | false | 호버한 시리즈를 전체 불투명도로 표시하고 나머지를 페이드 아웃하는 하이라이트 효과를 활성화합니다 |
Chart.Line
type"monotone""linear" | "monotone" | "step" | "natural"곡선 보간 타입. monotone은 부드러운 곡선, linear는 직선, step은 계단형, natural은 자연 스플라인
variant"solid""solid" | "dashed"라인 스타일. dashed는 파선으로 표시
dottrueboolean데이터 포인트 도트 표시
activeDottrueboolean호버 시 활성 도트 표시
| Name | Type | Default | Description |
|---|---|---|---|
type | "linear" | "monotone" | "step" | "natural" | "monotone" | 곡선 보간 타입. monotone은 부드러운 곡선, linear는 직선, step은 계단형, natural은 자연 스플라인 |
variant | "solid" | "dashed" | "solid" | 라인 스타일. dashed는 파선으로 표시 |
dot | boolean | true | 데이터 포인트 도트 표시 |
activeDot | boolean | true | 호버 시 활성 도트 표시 |
Chart.TooltipContent
indicator"dot""dot" | "line" | "dashed"툴팁 인디케이터 형태
hideLabelfalseboolean라벨 숨기기
hideIndicatorfalseboolean인디케이터 숨기기
colorundefinedstring인디케이터 색상을 직접 지정합니다. 미지정 시 페이로드 색상 사용
labelClassNameundefinedstring라벨 요소에 추가할 CSS 클래스
nameKeyundefinedstring데이터 키 이름 매핑
labelKeyundefinedstring라벨 키 매핑
labelFormatterundefined(value, payload) => ReactNode라벨 커스텀 포매터
formatterundefined(value, name, item, index, payload) => ReactNode값 커스텀 포매터
| Name | Type | Default | Description |
|---|---|---|---|
indicator | "dot" | "line" | "dashed" | "dot" | 툴팁 인디케이터 형태 |
hideLabel | boolean | false | 라벨 숨기기 |
hideIndicator | boolean | false | 인디케이터 숨기기 |
color | string | undefined | 인디케이터 색상을 직접 지정합니다. 미지정 시 페이로드 색상 사용 |
labelClassName | string | undefined | 라벨 요소에 추가할 CSS 클래스 |
nameKey | string | undefined | 데이터 키 이름 매핑 |
labelKey | string | undefined | 라벨 키 매핑 |
labelFormatter | (value, payload) => ReactNode | undefined | 라벨 커스텀 포매터 |
formatter | (value, name, item, index, payload) => ReactNode | undefined | 값 커스텀 포매터 |
Chart.LegendContent
hideIconfalseboolean아이콘 숨기기
nameKeyundefinedstring데이터 키 이름 매핑
verticalAlign"bottom""top" | "middle" | "bottom"수직 위치. Recharts Legend에서 자동 주입
align"center""left" | "center" | "right"수평 정렬. Recharts Legend에서 자동 주입
layout"horizontal""horizontal" | "vertical"레이아웃 방향. Recharts Legend에서 자동 주입
| Name | Type | Default | Description |
|---|---|---|---|
hideIcon | boolean | false | 아이콘 숨기기 |
nameKey | string | undefined | 데이터 키 이름 매핑 |
verticalAlign | "top" | "middle" | "bottom" | "bottom" | 수직 위치. Recharts Legend에서 자동 주입 |
align | "left" | "center" | "right" | "center" | 수평 정렬. Recharts Legend에서 자동 주입 |
layout | "horizontal" | "vertical" | "horizontal" | 레이아웃 방향. Recharts Legend에서 자동 주입 |
Chart.XAxis / Chart.YAxis
tick{ style: { fontSize, fill } }object축 라벨 스타일. 기본적으로 디자인 토큰(--font-size-2xs, --color-text-subtle)이 적용되며 커스텀 객체로 재정의 가능
width (YAxis)"auto"number | "auto"Y축 너비. auto는 데이터에 맞게 자동 조정, 숫자로 고정 너비 지정 가능
...props—XAxisProps | YAxisPropsRecharts XAxis / YAxis의 모든 props를 그대로 사용 가능
| Name | Type | Default | Description |
|---|---|---|---|
tick | object | { style: { fontSize, fill } } | 축 라벨 스타일. 기본적으로 디자인 토큰(--font-size-2xs, --color-text-subtle)이 적용되며 커스텀 객체로 재정의 가능 |
width (YAxis) | number | "auto" | "auto" | Y축 너비. auto는 데이터에 맞게 자동 조정, 숫자로 고정 너비 지정 가능 |
...props | XAxisProps | YAxisProps | — | Recharts XAxis / YAxis의 모든 props를 그대로 사용 가능 |
Anatomy
Best Practices
권장
- ✓시계열 데이터 및 트렌드 표시에 사용하세요
- ✓accessibilityLayer를 반드시 활성화하세요
- ✓예측값에는 variant="dashed"를 사용하세요
- ✓디자인 토큰 색상을 사용하세요
지양
- ✗카테고리 비교에는 사용하지 마세요. BarChart를 사용하세요
- ✗하나의 차트에 5개 이상의 시리즈를 넣지 마세요
- ✗이산 데이터에 monotone 보간을 사용하지 마세요. step을 사용하세요
- ✗그리드 없이 데이터 비교를 강제하지 마세요
Accessibility
키보드 조작
ARIA / WCAG
accessibilityLayer키보드 + 스크린 리더 지원- Tooltip이 데이터 값을 텍스트로 제공
- Legend로 시리즈 식별 가능
- 색상 토큰으로 다크 모드 자동 지원