All notable changes to uniplot will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Simplified example scripts, and added comments for readability.
- Improved Readability of the Readme.
- Gridlines were not displayed when using Braille characters.
- Legend labels are now drawn correctly when using the Braille character set.
- Fixed datetime labels with non-zero-aligned start time.
- Examples folder.
- Added
plot_gen
function to support streaming use cases, and streaming example script. Thanks to @PabloRuizCuevas for idea and PR!
- Fixed naming of Block Elements Unicode character option.
- Support for plotting with Braille characters (8x resolution, and a lighter
look) using the
character_set
option.
- Introduced linting with Ruff.
- Switched to Ruff for code formatting.
- Full CI is now executed on GitHub, same as locally.
- Stricter label overlap filter leading to higher quality datetime labels.
- Shortened, more readable datetime labels when plotting over months/years.
- Much improved datetime labels. Still experimental, but now using a similar logic as the numerical labels.
- New option
force_ascii_characters
that controls the symbols to be used, so that we can plot multiple series even without Unicode or color.
- Legend labels were colored even with the option
color=False
. Thanks to @NikosAlexandris for pointing this out!
- Basic color control: The
color
option can now also accept a list of strings. Thanks to @PabloRuizCuevas for idea and PR!
- Make plot lines appear simultaneously. This can be important when collecting various terminal streams, for example in a log analyzer. Thanks to @PabloRuizCuevas for idea and PR!
- Fixed passing partially empty series. Thanks to @PabloRuizCuevas for pointing this out!
- Fixed bin range default check when plotting a histogram. Thanks to @riga for the PR!
- Link from PyPI to the GitHub repository was missing. Thanks to @adigitoleo for pointing this out!
- Histogram limits are now auto-expanded for both sides (minimum and maximum) independently, which just makes more sense.
- Limits to bins that are passed to the histogram function via
bins_min
andbins_max
now work as expected. Thanks to @riga for pointing this out!
- Vertical and horizontal lines that were partially out of view were not drawn fully. Fixed thanks to @riga
- Experimental: Added support for plotting the y-axis as timestamps.
- Explicit conversion to string of text options. The goal here is to allow for other objects to be passed in, such as a machine learning model object, without manually creating the text label first.
- Nicer datetime label formatting.
- Added tests to make sure uniplot works well with Polars.
- Experimental: Added support for plotting the x-axis as timestamps. Thanks to @leighleighleigh for the first draft!
- Improved tolerance to invalid values when plotting logarithmic scales.
- Fixed plotting of grouped Pandas DataFrames, and added tests for it.
- Plotting now silently ignores negative or zero values during logarithmic plotting.
- New option to force ASCII mode, for example for CI/CD systems that do not support Unicode.
- Added
__all__
statement to fix language server complaint when usingfrom uniplot import plot
thanks to @h0uter
- Vertical axis labels with equal line spacing are now preferred, for a cleaner look.
- Fixed many of the rare cases with blank axis labels.
- Labels are now correctly aligned to zero.
- Manual view options are now working correctly when using log scales.
- Data can now be plotted on a logarithmic scale.
- Fixed a rare issue with displaying the wrong number of digits of axis labels.
- Upgraded NumPy, and then Python to >= 3.8 with it, to avoid allowing older NumPy versions with known vulnerabilities.
- Switched to Poetry for package and build management.
- Now using
numpy.typing
for type hints of NumPy objects, which means that uniplot now supports NumPy versions>=1.20.0
.
- Improved NaN tolerance: Lines will not be plotted when connecting points that contain NaN values in the coordinates.
- NaN values in the input series will now be silently ignored, for ease of use.
- Centering of x-axis labels with units.
- Axis labels can now have units.
- New option to put a hard cap on the line length.
- New print_to_string function to return a string instead of printing to stdout.
- t.b.d.