A text-based implementation of horizon charts, mostly inspired by Cubism.js. The name is based on an offshoot of cubism focused on abstraction and color.
Horizon charts in a single line of text allow for an incredible amount of resolution in minimal space: making it easier to find outliers and understand general trends in numbers. Orphism is an implementation built using Rich for advanced rendering and Unicode block characters. They also fit in remarkably well with Tufte's Small Multiples.
For fun -- and the joy of programming -- Orphism is implemented in Hy Lang. Strategically placed __init__.py
files that import hy should make this completely transparent to anyone relying on the library.
This is currently a development build: please expect the API and design to change dramatically as I iterate.
Available on PyPI!
pip install orphism
This will install both a module and a CLI.
The development versions are incredibly simple: they can accept a list of numbers as arguments, or through stdin (generally a pipe).
echo 1 2 3 | orphism
orphism $(echo 1 2 3)
A LineRenderable
class represents the rich element to render a horizon chart.
import rich
from orphism.line import LineRenderable
rich.print(LineRenderable([1, 2, 3, 4]))
- First public release; 0.0.1dev2 is somewhat functional.
Temperature data from weather.gov: Central Park, NY, 2023-12