Probability Scales

I’m starting to look through the source to assess the feasibility adding probability scales to bokeh.

For reference, here’s the introduction to prob scales in the docs for the maplotlib-based scale I’ve created:

My plan is to start with an extension library at first (a la mpl-probscale), but if there’s interest in incorporating upstream, I’d love to do that too.

I’ve got just a couple of basic questions:

  1. My initial assessment makes me think that the scales are mostly written in CoffeeScript . Is that correct?

  2. If the scales are in CoffeeScript and probability scale needs the PPF and CDF functions of a normal distribution for the scale, those have to be implemented in CoffeeScript as well, right?

  3. I see that the mantissas property of ticker classes control which values are ticked. How do you control the placement of the ticks? In other words, a probability scaled might be scaled [0.1, 0.2, 0.5, 1, 2, 5, … 95, 98, 99, 99.5, 99.8, 99.9], but those are placed based on the normal PPF of those probabilities (see link above). Where does that transformation of tick_value -> tick_placement happen?

When creating my matplotlib scale, I used their LogScale as a template, but I’m having a little trouble following where the guts are in bokeh. A nudge in the right direction would be most appreciated.