plotlib
plotlib copied to clipboard
Add legends
We should be able to collect the objects being plotted and create a legend. We need to know:
- What objects are plotted
- How to draw an icon for each
- Where to put the legend by default
I made a first draft here.
I added legend_svg()
to trait ContinuousRepr
and implemented it for Line
(for now). It uses the Line's LineStyle to determine and draw the icon it should use.
Then, in <ContinuousView as View>::to_svg()
, when we loop through the representations we also get their legends, and place them under each other in the top right corner.
Edit: parts of the implementation were apparently in previous commits. For example a way to set the legend in Line
: https://github.com/Ploppz/plotlib/blob/wip/src/repr/line.rs#L44
Questions and possible changes:
- Maybe
legend_svg
should also be a function in the different styles, so thatFunction::legend_svg
andLine::legend_svg
can both useLineStyle::legend_svg
? - Make the position of the legends adapt to what is plotted (so that it doesn't collide)?
- and/or: Make it possible for the user to select the position: one of the corners, and maybe even outside of the plot (I think matplotlib allows this)