Examples
Labels names the axes clockwise from the top; value i of each ChartSeries lines up with axis i, and each series gets the next palette colour.
Grid="RadarGrid.Circle" draws round rings, Filled="false" keeps only the outlines, and Max fixes the outer ring instead of rounding up the largest value.
Stacked puts each series on the running total of the ones before it, on every spoke, so each fills its own band; tooltips keep each series' own value.
Percent stacks every spoke to 100%, so the bands show each series' share; the rings read in percent and tooltips show the value and the share.
Playground
<RadarChart
Title="Plans compared (score out of 100)"
Labels="@_axes"
Series="@_plans" />
@code {
private readonly string[] _axes = ["Seats", "Storage", "API calls", "Support", "Integrations"];
// Value i of each series lines up with axis i; each series gets the next palette colour.
private readonly ChartSeries[] _plans =
[
new("Starter", [20, 25, 30, 20, 35]),
new("Team", [55, 60, 65, 50, 70]),
new("Scale", [90, 85, 95, 90, 80]),
];
}API
<RadarChart>
DaisyBlazor.ChartsParameters
- AspectRatio double= 1.33
Width divided by height. The chart keeps this shape at any width; its text keeps its size.
- Filled bool= true
Fill each series' shape with a light tint of its colour; when false only the outlines are drawn.
- Grid RadarGrid= RadarGrid.Polygon
Shape of the grid rings: straight-sided or round.
- Labels IReadOnlyList<
string> = []The axis names, clockwise from the top. At least three are needed.
- Levels int= 4
About how many grid rings to draw; the exact count follows nice tick values.
- Max double?= null
Value at the outer ring. When null it is the largest value, rounded up to a nice number; larger values are drawn at the edge.
- Percent bool= false
100% stacked (implies Stacked): every spoke's total reaches the outer ring, so the bands show each series' share; the rings read in percent and Max is ignored. Tooltips show the value and the share.
- RowHeight double?= null
Height of each row in px, for a chart that lays its categories out as rows (horizontal bars, a Gantt's lanes, a heatmap's rows…): its height then follows its number of rows instead of AspectRatio, so a long list keeps readable rows at any width. A chart, or an orientation, without rows ignores it.
- Series IReadOnlyList<
ChartSeries> = []The series; value i of each lines up with axis i. Missing, NaN or negative values sit at the centre.
- ShowLegend bool= true
Show a legend when there is more than one series.
- ShowPoints bool= true
Draw a dot at each value.
- ShowTitle bool= true
Draw Title as a visible heading above the chart (the default); false keeps it only as the chart's accessible name, for a chart inside a card that already has a heading.
- Stacked bool= false
Stack the series radially: on every spoke each series starts where the ones before it end, and fills its own band. Missing or negative values count as 0; tooltips still show each series' own value.
- Title string= null
Optional heading rendered above the chart; it is also the chart's accessible name.
- ValueFormat string= "{0:#,0.##}"
Format string for values in tooltips and the description, e.g. "{0:N0} GB".
- Width string= "100%"
CSS width of the chart wrapper.
- Class string= null
Additional CSS classes merged onto the w-full wrapper.
- Style string= null
Inline styles appended after the width on the wrapper.