Skip to main content

Sparklines

Build Python versions PyPI version Downloads Status Format License Buy Me a Coffee

Sparklines brings Edward Tufte's sparklines to your terminal — compact Unicode bar charts like ▃▁▄▁▅█▂▅, right in your shell or Python code. Originally built for sanity-checking sensor data in IoT networks, it works anywhere you need a quick visual summary of a sequence of numbers.

example usecase with sensor values
Example usecase for such "sparklines" on the command-line, showing IoT sensor values (generating code not included here).

Positive values work best, but negatives are fully supported: mixed data auto-splits into two rows, all-negative data renders as downward bars (see Mixed and negative datasets below). True line-style sparklines would require a dedicated font — out of scope here. We use "▁▂▃▄▅▆▇█" for values and a blank for missing ones.

Use cases

Finance — stock price history, daily P&L (bipolar: gains above, losses below), trading volume spikes, bid-ask spread over a session.

IoT — temperature and humidity sensors, power consumption per circuit, air quality index, battery charge on remote devices.

DevOps & SRE — request rate and error rate per minute, CI build duration trend, queue depth, replica lag.

Data Science & ML — training loss and validation accuracy per epoch, gradient norms, data drift score, inference latency after a deployment.

Agentic computing — token usage and cost per API call, context window fill level, cache hit rate, tool-call frequency per agent loop iteration.

Health & Fitness — heart rate during exercise, sleep quality over weeks, blood glucose across a day, daily caloric balance.

Sample output

A recorded demo session — click the image to play it on Asciinema:

asciicast

Installation

From PyPI

pip install sparklines

On macOS with Homebrew

brew tap deeplook/sparklines
brew install sparklines

With uv

uvx sparklines 2 7 1 8 2 8 1 8

Or install it into your uv tool environment:

uv tool install sparklines

From Source

git clone https://github.com/deeplook/sparklines.git
cd sparklines
pip install .

Development

git clone https://github.com/deeplook/sparklines.git
cd sparklines
pip install -e ".[dev]"
pytest tests

Usage

Python

from sparklines import sparklines

for line in sparklines([1, 2, 3, 4, 5.0, None, 3, 2, 1]):
    print(line)
# ▁▃▅▆█ ▅▃▁

for line in sparklines([1, 2, 3, 4, 5.0, None, 3, 2, 1], num_lines=2):
    print(line)
#   ▁▅█ ▁
# ▁▅███ █▅▁

Mixed and negative datasets

Mixed positive/negative data is split automatically — no flags needed:

from sparklines import sparklines

data = [50, 30, 80, -20, -60, -10, 40, 10]
for line in sparklines(data):
    print(line)
# ▅▄█   ▄▂
#    ▔▀▔

All-negative data renders as inverted (downward) bars automatically.

-n / --num-lines

Form Behaviour
integer (default 1) total rows, split proportionally; shared scale
auto smallest row count for an exact proportional split
up:down (e.g. 2:1) explicit per-side layout; independent scaling
$ sparklines -n auto 1 2 3 -1 -2 -3 0 4 5 6
       ▃▆█
▄▆█   ▁███
   ▔▔▀
$ sparklines -n 2:1  1 2 3 -1 -2 -3 0 4 5 6
       ▃▆█
▄▆█   ▁███
   ▔▀█

--zero: up (default) places zeros on the positive baseline; none renders them as gaps.

$ sparklines --zero up   0 1 2 -1 -2 0
▁▄█  ▁
   ▀█
$ sparklines --zero none 0 1 2 -1 -2 0
 ▄█
   ▀█

Downward bars use ANSI reverse video for full 8-level resolution. Falls back to ▔▀█ when NO_COLOR, ANSI_COLORS_DISABLED, or TERM=dumb is set.

References

Inspired by Zach Holman's spark, with prior Python ports by Kenneth Reitz (spark.py), RedKrieg (pysparklines), and Roger Allen (shorter spark.py).

This package adds:

  • multi-line rendering for higher resolution (-n)
  • gaps for missing values (None)
  • auto-split for mixed positive/negative data
  • inverted bars for all-negative data
  • proportional row allocation (-n auto)
  • explicit per-side layout (-n up:down)
  • zero handling (--zero up / --zero none)
  • colour emphasis via --emphasize
  • line wrapping via --wrap

Release files for sparklines 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sparklines 1.0.0
File Size Uploaded
sparklines-1.0.0.tar.gz 243.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for sparklines 1.0.0
File Interpreter ABI Platform
sparklines-1.0.0-py3-none-any.whl Python 3 none any Details

Total release size:258.7 kB

Release files / sparklines-1.0.0.tar.gz

Download URL sparklines-1.0.0.tar.gz
Size 243.4 kB
Tags Source
SHA-256 checksum
How to use checksums
eee3ed5ac6dc954096ab092ce336941050eca790e2f33f85de65a4ea0a43cf74
BLAKE2b-256 checksum
How to use checksums
be523e3c437c665397047e2c9364e27f53f85024c57fe990f422a30593fd8c98
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / sparklines-1.0.0-py3-none-any.whl

Download URL sparklines-1.0.0-py3-none-any.whl
Size 15.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6d3d2cd7ad955b071c3f0abcb5e04662c65cc51ab287342ed2602f3b95576033
BLAKE2b-256 checksum
How to use checksums
2d1b712ddc74da87118f4f0c60a2adb5d6faadc986c72fa4bcef3d45be999c58
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.3 {"installer":{"name":"uv","version":"0.11.3","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.2

1 release file

0.4.1

1 release file

0.4.0

1 release file

0.3.0

1 release file

0.2.0

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page