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のindicatorpropで、ツールチップのインジケーター形状を変更できます。
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チャートコンポーネント
idundefinedstringチャートのユニークID (CSS変数スコーピング用)
hoverFadefalsebooleanホバーしたシリーズをフルカラーで表示し、それ以外をフェードアウトするハイライト効果を有効にする
| Name | Type | Default | Description |
|---|---|---|---|
config | ChartConfig | — | チャートの設定オブジェクト (ラベル・カラー定義) |
children | ReactElement | — | Rechartsチャートコンポーネント |
id | string | undefined | チャートのユニークID (CSS変数スコーピング用) |
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 の全プロパティをそのまま使用可能
| 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 の全プロパティをそのまま使用可能 |
Anatomy
Best Practices
推奨
- ✓時系列データやトレンド表示に使用する
- ✓accessibilityLayerを必ず有効にする
- ✓予測値にはvariant="dashed"を使用する
- ✓デザイントークンのカラーを使用する
避けるべき
- ✗カテゴリ比較には使用しない (BarChartを推奨)
- ✗5シリーズ以上を1つのチャートに詰め込まない
- ✗離散データにmonotone補間を使用しない (stepを推奨)
- ✗グリッドなしでデータの比較を強制しない
Accessibility
キーボード操作
ARIA / WCAG
accessibilityLayerキーボード+SR対応- Tooltipでデータ値をテキストで提供
- Legendでシリーズを識別可能
- カラートークンでダークモード自動対応