TermUI.Widgets.Sparkline (TermUI v0.2.0)
View SourceSparkline widget for compact inline trend visualization.
Uses vertical bar characters (▁▂▃▄▅▆▇█) to display values in minimal space. Perfect for inline data display within text.
Usage
Sparkline.render(
values: [1, 3, 5, 2, 8, 4, 6],
min: 0,
max: 10
)Bar Characters
The sparkline uses 8 levels of vertical bar characters: ▁ (1/8), ▂ (2/8), ▃ (3/8), ▄ (4/8), ▅ (5/8), ▆ (6/8), ▇ (7/8), █ (8/8)
Summary
Functions
Returns the list of bar characters used by sparklines.
Renders a sparkline from values.
Renders a labeled sparkline with min/max indicators.
Creates a sparkline string from values (returns string, not render node).
Converts a single value to its sparkline bar character.
Functions
@spec bar_characters() :: [String.t()]
Returns the list of bar characters used by sparklines.
@spec render(keyword()) :: TermUI.Component.RenderNode.t()
Renders a sparkline from values.
Options
:values- List of numeric values (required):min- Minimum value for scaling (default: auto):max- Maximum value for scaling (default: auto):style- Style for the sparkline:color_ranges- List of {threshold, color} for value-based coloring
@spec render_labeled(keyword()) :: TermUI.Component.RenderNode.t()
Renders a labeled sparkline with min/max indicators.
Options
:values- List of numeric values (required):label- Label for the sparkline:show_range- Show min/max values (default: true)
Creates a sparkline string from values (returns string, not render node).
Options
:min- Minimum value (default: auto):max- Maximum value (default: auto)
Converts a single value to its sparkline bar character.
Examples
iex> Sparkline.value_to_bar(5, 0, 10)
"▄"
iex> Sparkline.value_to_bar(10, 0, 10)
"█"
iex> Sparkline.value_to_bar(0, 0, 10)
"▁"