Platform-agnostic, highly customizable sequence plotting in the console
pip install asciiplot
You may set the/a
- chart height & title
- color of virtually all chart components, picked from a wide array of shades due to the integration of colored
- margin between consecutive data points
- tick point color, to make the tick points visually stand out in case of a margin having been set
- indentation of the entire chart, or whether it ought to be centered within its hosting terminal, respectively
- axes descriptions
- x-axis tick labels, which may be composed of strings instead of just numeric values
- y-axis tick label decimal places; the labels themselves will be computed auomatically from the passed sequences
from asciiplot import asciiize, Color
print(
asciiize(
[0, 1, 1, 2, 3, 5, 8, 13, 21],
sequence_colors=[Color.BLUE_3B],
height=22,
inter_points_margin=5,
background_color=Color.LIGHT_SALMON_1,
tick_point_color=Color.RED_1,
label_color=Color.BLUE_VIOLET,
label_background_color=Color.DEEP_PINK_3A,
title='Fibonacci',
title_color=Color.RED_1,
x_axis_description='x',
y_axis_description='y',
center_horizontally=True
)
)
from asciiplot import asciiize, Color
print(
asciiize(
[17, 21, 19, 19, 5, 7, 12, 4],
[7, 8, 3, 17, 19, 18, 5, 2, 20],
sequence_colors=[Color.RED, Color.BLUE_VIOLET],
inter_points_margin=5,
height=20,
background_color=Color.GREY_7,
title='Random Sequences',
title_color=Color.MEDIUM_PURPLE,
label_color=Color.MEDIUM_PURPLE,
x_axis_description='x',
y_axis_description='y',
center_horizontally=True
)
)
The core sequence asciiization algorithm was adopted from asciichartpy.
git clone https://github.com/w2sv/asciiplot.git
cd asciiplot
poetry install
make test # runs mypy, pytest, doctest and outputs test coverage