Looks great, minor API usability note: I don't know if there is an official convention but when naming an object that has the potential of overriding a builtin, rather than prepending with an underscore, e.g. `_with`, one does append to it: `with_`. The former is used and recognised for unused variables.
> _with is a curve option that indicates how this dataset should be plotted. It’s _with and not with because the latter is a built-in keyword in Python. [1]
- [1] https://github.com/dkogan/gnuplotlib/blob/master/guide/guide...