RadialChart
RadialChart
は、複数のデータを比較するための放射状チャートを描画するコンポーネントです。
インポート
pnpm add @yamada-ui/charts
@yamada-ui/charts
は、@yamada-ui/react
に含まれていないため、別途インストールする必要があります。
import { RadialChart } from "@yamada-ui/charts"
使い方
RadialChart
は、内部的にRechartsを使用しています。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} />
サイズを変更する
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <VStack> <RadialChart data={data} size="sm" /> <RadialChart data={data} size="md" /> <RadialChart data={data} size="lg" /> <RadialChart data={data} size="full" /> </VStack> )
凡例を表示する
凡例を表示する場合は、withLegend
をtrue
に設定します。また、凡例の位置を変更する場合は、legendProps.verticalAlign
に"bottom"
などを設定します。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <VStack> <RadialChart data={data} withLegend /> <RadialChart data={data} withLegend legendProps={{ verticalAlign: "bottom", mb: "0", mt: "4" }} /> </VStack> )
間隔を調整する
間隔を調整する場合は、radialBarProps
にbarCategoryGap
を設定します。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <RadialChart data={data} interRadius={30} chartProps={{ barCategoryGap: "30%", }} /> )
内半径、外半径を調整する
内半径を調整する場合はinnerRadius
に、外半径を調整する場合はouterRadius
にパーセンテージまたは数値を設定します。
パーセンテージを設定した場合は、チャートの高さに対する割合として計算されます。
数値を設定した場合は、半径のpx
として計算されます。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <VStack> <RadialChart data={data} innerRadius="30%" /> <RadialChart data={data} outerRadius="70%" /> </VStack> )
開始、終了の角度を調整する
開始の角度を調整する場合はstartAngle
に、終了の角度を調整する場合はendAngle
に角度を設定します。
3時の方向を0度として反時計回りに進みます。時計回りにしたい場合は、マイナスの値を設定してください。
デフォルト値は12時から時計回りにするため、startAngle
に90
、endAngle
に-180
を設定しています。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} startAngle={180} endAngle={0} />
ラベルを表示する
ラベルを表示する場合は、labelListProps
に表示したいラベルの場所と値を配列で設定します。
編集可能な例
const data: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <RadialChart data={data} innerRadius={50} endAngle={-225} labelListProps={[ { position: "insideStart", dataKey: "name", }, { position: "insideEnd", dataKey: "value", }, ]} /> )
ツールチップに表示するデータを切り替える
ツールチップに表示するデータを切り替える場合は、tooltipDataSource
にall
またはsegment
を設定します。デフォルトは、all
です。
編集可能な例
const data: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} tooltipDataSource="segment" />
ツールチップを非表示にする
ツールチップを非表示にする場合は、withTooltip
をfalse
に設定します。デフォルトは、true
です。
編集可能な例
const data: CellProps[] = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} withTooltip={false} />
フォーマットする
ツールチップの値をフォーマットする場合は、valueFormatter
を使います。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} valueFormatter={(value) => `${value}P`} />
透明度を調整する
透明度を調整する場合は、fillOpacity
に数値または数値の配列を設定します。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return <RadialChart data={data} fillOpacity={[0.8, 0.7]} />
グリッドを表示にする
グリッドを表示にする場合は、withPolarGrid
をtrue
に設定します。
グリッドの形状を変更する場合は、polarGridProps.gridType
に"polygon"
または"circle"
を設定します。デフォルトは、"polygon"
です。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <VStack> <RadialChart data={data} withPolarGrid endAngle={-270} /> <RadialChart data={data} withPolarGrid endAngle={-270} polarGridProps={{ gridType: "circle" }} /> </VStack> )
背景を表示する
背景を表示する場合は、radialBarProps.background
にfill
を設定します。
編集可能な例
const data = useMemo( () => [ { name: "HP", value: 106, color: "green.500" }, { name: "こうげき", value: 90, color: "red.500" }, { name: "ぼうぎょ", value: 130, color: "blue.500" }, { name: "とくこう", value: 90, color: "purple.500" }, { name: "とくぼう", value: 154, color: "orange.500" }, { name: "すばやさ", value: 110, color: "cyan.500" }, ], [], ) return ( <RadialChart data={data} radialBarProps={{ background: { fill: ["blackAlpha.200", "whiteAlpha.100"] }, }} /> )
GitHubでこのページを編集する