Line Chart

Line 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 a single series with a smooth line connection.

Line Chart

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Linear

Displays data using straight line segments between points.

Line Chart - Linear

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Label

Shows data points with labels for clear value identification.

Line Chart - Label

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Multiple

Visualizes multiple data series on the same chart for comparison.

Line Chart - Multiple

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Title Label

Includes a title and labels for comprehensive chart context.

Line Chart - Title Label

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Minimal

A clean, stripped-down version focusing on essential data visualization.

Line Chart - Minimal

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Dynamic

Demonstrates how data or series can update interactively in real-time.

Line Chart - Dynamic

Showing total visitors for the last 6 months

Trending up by 5.2% this month

January - June 2024

Custom Legends

Implements a user-defined legend layout for better presentation control.

Desktop

Mobile