Radar Chart

Radar Charts are ideal for showing changes over time or the magnitude of multiple datasets stacked together. They combine the smoothness of line charts with the visual impact of filled areas.

Usage

Copy the following helper functions into your Reflex application.

import reflex as rx

tooltip = {
    "is_animation_active": False,
    "separator": "",
    "cursor": False,
    "item_style": {
        "color": "currentColor",
        "display": "flex",
        "paddingBottom": "0px",
        "justifyContent": "space-between",
        "textTransform": "capitalize",
    },
    "label_style": {
        "color": rx.color("slate", 10),
        "fontWeight": "500",
    },
    "content_style": {
        "background": rx.color_mode_cond("oklch(0.97 0.00 0)", "oklch(0.14 0.00 286)"),
        "borderColor": rx.color("slate", 5),
        "borderRadius": "5px",
        "fontFamily": "IBM Plex Mono,ui-monospace,monospace",
        "fontSize": "0.875rem",
        "lineHeight": "1.25rem",
        "fontWeight": "500",
        "letterSpacing": "-0.01rem",
        "minWidth": "8rem",
        "width": "175px",
        "padding": "0.375rem 0.625rem ",
        "position": "relative",
    },
}


def info(title: str, size: str, subtitle: str, align: str):
    return rx.vstack(
        rx.heading(title, size=size, weight="bold"),
        rx.text(subtitle, size="1", color=rx.color("slate", 11), weight="medium"),
        spacing="1",
        align=align,
    )


def get_tooltip():
    """Standard tooltip for all charts."""
    return rx.recharts.graphing_tooltip(**tooltip)


def get_cartesian_grid():
    """Standard cartesian grid for charts."""
    return rx.recharts.cartesian_grid(
        horizontal=True, vertical=False, class_name="opacity-25"
    )


def get_x_axis(data_key: str):
    """Standard X axis configuration."""
    return rx.recharts.x_axis(
        data_key=data_key,
        axis_line=False,
        tick_size=10,
        tick_line=False,
        custom_attrs={"fontSize": "12px"},
        interval="preserveStartEnd",
    )

Examples

Below are examples demonstrating how these components and charts can be used.

Basic

A minimal example showing multivariate data in a radial layout with filled areas.

Radar Chart

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories

Stroke with Dots

Displays data points with visible markers along the radar lines for clarity.

Radar Chart - Dots

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories

Stacked

Visualizes multiple data series layered on top of each other for comparison.

Radar Chart - Stacked

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories

Lines Only

Shows only the outline strokes without filled areas for a cleaner look.

Radar Chart - Lines Only

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories

Circle Grid

Uses circular grid lines instead of polygon shapes for the background.

Radar Chart - Circle Grid

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories

Filled Grid

Renders the grid with filled background sections for enhanced visual contrast.

Radar Chart - Filled Grid

Player performance across key gameplay categories

Trending up by 5.2% this month

Performance trends in key gameplay categories