Generate Distinct Colors
When plot with R (or some other software), it doesn’t bother you a lot for choosing colors if you have only several data series. For example, if I want to create a figure for 5 data series, I can easily choose red, green, dark green, blue and black. But what if I need to create a figure having 100 data series? Of course, we can choose different shape or pattern, like dash line, circle, triage, etc. However, to me, I feel that make the figure messy, I prefer all series in same style, except their colors. I created a Shiny-app which can generate random distinct colors in a certain color plate, would like to share it.
The design idea is like this:
- Generate N random points. Some points are very close to each other, so they are not easy distinguished.
- Find the point-pair which have the shortest distance, pick up one point of it and put it to a new location where it has the largest distance to all the rest points.
- Continue the above step, until there is no new location meet requirement.