Guides for Emergent Colors
The raw visualization definition says "red" and "blue" but it used transparency, so I got some pink and purple...
Use abstract rendering to build a guide that represents those emergent colors.
Partially done on the SCDemo branch. Works for counts. Need to get categorical support.
Categories will probably require taking a "Sampler" object to do correctly. Samplers determine which of the many unique input/output pairs to actually show in the legend. The numeric sampler just samples at even intervals, but the interval space is not as well defined in categories. Probably want pure-category outputs as well as some mixtures up to a certain total number...
Basic framework is done in cee213c21286c4321b25043e25f4a9fb8cbf2a29. Not very GOOD guides yet, but guides none-the less.
Basic strategy is to measure the span of the output color space and divide it up into equal-sized bins. Exemplars that land in the bins are selected from the actual pixels and the corresponding aggregate source-value is used as the label.
Things to look at:
- Weight the in-bin sampling according to the frequency of value occurrence
- Look at the output-bin iteration order to go for more frequent items in a bin-group first.
Idea for improved value-selection:
- Have high-level bins, which are divided into sub-bins
- Each sub-bin is weighted by the number of pixels that land in that sub-bin.
- When asking for an exemplar, it gets the most weight item from each bin in the first pass and 2nd most weighted in 2nd.
- Deciding on exemplar in a given sub-bin is either random (current resivour sampling method) or full-count and then pick greatest