plotters-rs / plotters

A rust drawing library for high quality data plotting for both WASM and native, statically and realtimely 🦀 📈🚀
https://plotters-rs.github.io/home/
MIT License
3.89k stars 281 forks source link

[Feature Request] Line style #321

Open DaMilyutin opened 2 years ago

DaMilyutin commented 2 years ago

What is the feature ?

It would be nice to have not only solid lines but also dashed, dotted or whatever pattern. I haven't found this in documentation. So, if this functionality exists, consider this issue a request for doc.

(Optional) Why this feature is useful and how people would use the feature ?

There are lots of use cases when you need different line styles to distinguish plots. Ex. when colors and width is not enough or is less expressive. This functionality exists in different languages (see links below) so obviously there are a lot of users for this.

(Optional) Additional Information

Examples from other languages. Matlab: https://www.mathworks.com/help/matlab/creating_plots/specify-line-and-marker-appearance-in-plots.html Scilab: https://help.scilab.org/docs/5.5.1/en_US/LineSpec.html Python/matplotlib: https://matplotlib.org/2.0.0/api/lines_api.html C++/Qt/QCustomPlot: https://www.qcustomplot.com/index.php/tutorials/basicplotting

DaMilyutin commented 2 years ago

I did some research on this. See results https://github.com/plotters-rs/plotters/discussions/324

I was away for a while. I'll tell may opinion what seems right for me. There is old C++ library (2005) called antigraingeometry (AGG). It is very complee for drawing primitives anf for backend (matplotlib uses AGG). It will be perfect for plotters backend to take some stuff and functionality from there. I assume, that floating point coordinates backend is quite important to achieve best results.

BR, Daniel