## dufte

This package creates clean and beautiful plots that work on light and dark backgrounds. Inspired by the work of Edward Tufte.

To use, simply select the dufte style:

import dufte
import matplotlib.pyplot as plt

# global setting:
plt.style.use(dufte.style)

# with a context manager:
with plt.style.context(dufte.style_bar):
# ...
pass


Check out dufte.legend(), dufte.ylabel(), and dufte.show_bar_values() for more duftiness.

#### Comparison with default Matplotlib

See here for how to create the below plots.

matplotlib dufte with dufte.legend()
matplotlib dufte dufte with dufte.show_bar_values()

Projects using dufte:

### Background

The position $x_i$ of the line annotations is computed as the solution of a non-negative least-squares problem

\begin{align}
\frac{1}{2}\sum_i (x_i - t_i)^2 \to \min_x,\\
(x_i - x_j)^2 \ge a^2 \quad \forall i,j.
\end{align}


where $a$ is the minimum distance between two entries and $t_i$ is the target position.

### Testing

To run the dufte unit tests, check out this repository and type

pytest


## GitHub

https://github.com/nschloe/dufte