PieChart
PieChart
は、複数のデータを比較するためのパイチャートを描画するコンポーネントです。
インポート
pnpm add @yamada-ui/charts
@yamada-ui/charts
は、@yamada-ui/react
に含まれていないため、別途インストールする必要があります。
import { PieChart } from "@yamada-ui/charts"
使い方
PieChart
は、内部的にRechartsを使用しています。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} />
サイズを変更する
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return ( <VStack> <PieChart data={mewtwo} size="sm" /> <PieChart data={mewtwo} size="md" /> <PieChart data={mewtwo} size="lg" /> </VStack> )
凡例を表示する
凡例を表示する場合は、withLegend
をtrue
に設定します。また、凡例の位置を変更する場合は、legendProps.verticalAlign
に"bottom"
などを設定します。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return ( <VStack> <PieChart data={mewtwo} withLegend /> <PieChart data={mewtwo} withLegend legendProps={{ verticalAlign: "bottom", mb: "0", mt: "4" }} /> </VStack> )
間隔を調整する
間隔を調整する場合は、paddingAngle
に数値を設定します。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} paddingAngle={15} />
開始、終了の角度を調整する
開始の角度を調整する場合はstartAngle
に、終了の角度を調整する場合はendAngle
に角度を設定します。
3時の方向を0度として反時計回りに進みます。時計回りにしたい場合は、マイナスの値を設定してください。
デフォルト値は12時から時計回りにするため、startAngle
に90
、endAngle
に-270
を設定しています。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} startAngle={90} endAngle={225} />
ラベルを表示する
ラベルを表示する場合は、withLabels
をtrue
に設定します。
また、ラベルまでのガイドを表示する場合はwithLabelLines
をtrue
に設定します。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} withLabels withLabelLines />
ラベルの表示位置を調整する
ラベルを表示位置を調整する場合は、labelOffset
に数値を設定します。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} withLabels withLabelLines labelOffset={35} />
ラベルを割合にする
ラベルの表示を割合にする場合は、isPercent
をtrue
に設定します。デフォルトは、false
です。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} withLabels isPercent />
ツールチップに表示するデータを切り替える
ツールチップに表示するデータを切り替える場合は、tooltipDataSource
にall
またはsegment
を設定します。デフォルトは、all
です。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} tooltipDataSource="segment" />
ツールチップを非表示にする
ツールチップを非表示にする場合は、withTooltip
をfalse
に設定します。デフォルトは、true
です。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} withTooltip={false} />
フォーマットする
ツールチップの値をフォーマットする場合は、valueFormatter
を使います。
ラベルの値をフォーマットする場合は、labelFormatter
を使います。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return ( <VStack> <PieChart data={mewtwo} valueFormatter={(value) => `${value}P`} /> <PieChart data={mewtwo} withLabels labelFormatter={(value) => `${value}P`} /> </VStack> )
透明度を調整する
透明度を調整する場合は、fillOpacity
に数値または数値の配列を設定します。
編集可能な例
const mewtwo: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500", }, { name: "こうげき", value: 110, color: "red.500", }, { name: "ぼうぎょ", value: 90, color: "blue.500", }, { name: "とくこう", value: 154, color: "purple.500", }, { name: "とくぼう", value: 90, color: "orange.500", }, { name: "すばやさ", value: 130, color: "cyan.500", }, ], [], ) return <PieChart data={mewtwo} fillOpacity={[0.8, 0.7]} />
GitHubでこのページを編集する