Skip to content
/ asciiplot Public

Python package allowing for platform-agnostic, highly customizable sequence plotting in the console.

License

Notifications You must be signed in to change notification settings

w2sv/asciiplot

Repository files navigation

asciiplot

PyPI - Python Version Build codecov PyPI GitHub release (latest SemVer) Downloads GitHub

Platform-agnostic, highly customizable sequence plotting in the console

alt text

Installation

pip install asciiplot

Plot Appearance Configuration Options

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

Usage Examples

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
    )
)

alt text

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
    )
)

alt text

Credits

The core sequence asciiization algorithm was adopted from asciichartpy.

Run Tests

git clone https://github.com/w2sv/asciiplot.git
cd asciiplot
poetry install
make test  # runs mypy, pytest, doctest and outputs test coverage

License

MIT