plot is a header-only terminal plotting library for C++14 and later. It is based on the same idea as the awesome Drawille and UnicodePlots.jl libraries: using Unicode Braille characters to display complex graphics in any terminal.

This project is a work in progress. The architecture comprises a generic canvas API supporting the most common vector graphics commands (already implemented), and a planned plotting API for building complex visualizations. The canvas implementation tries to make clever use of true color, where available, to reduce artifacts due to the inherent limitations of the output method.

The original use case was to provide quick and easy visual output for data processing software written in C++. The library enjoyed some success on GitHub, but ultimately the development stalled as I could not come up with an ergonomic plotting API design. Moreover, at the moment C++ is quite marginal as a language for data processing, and support for Braille characters in terminal fonts is generally spotty and unreliable.

plot is distributed under the open source MIT license.


Here is a youtube video demonstrating the capabilities of this library. For code examples visit the repository on GitHub.