The linear zoom on the Y axis in the last stop makes sense - it's easier to judge the clipping status in tricky cases.

However, linear scaling on the X axis does not - at least to me. Why? With logarihtmic scaling on X:

- you can always read the offset in EV

- when exposure changes, the entire histogram translates horizontally.

Good luck doing that with a linear-X histogram

BTW, there is already a linear Y scaling option in ML histogram menu. It's off by default because whenever there's a large peak (strong highlight, large flat area, whatever), it will make all the other things look tiny. Try evaluating the exposure from it on the examples below.

While we are at linear scaling on Y, why not consider another "view" -

**the CDF** (integral of histogram) ? In our case, it shows everything a linear histogram does, it requires no scaling (range is always 0 - 100%) and reveals a few other things that are not easy to read from the histogram:

- where the median value is on each channel (just look at the middle point)

- what percentage of shadows are under the noise floor (easy - vertical scale is linear)

The above points are exactly where AutoETTR evaluates the exposure (median, shadow percentiles).

The CDF doesn't do a very good job showing the overexposure (it's not obvious if only a small percentage is clipped), but a zoomed view on e.g. the last two stops (EV on X, linear on Y) shows exactly that.

The CDF is also a LOT smoother out of the box

Examples (left: log-Y histogram, middle: linear-Y histogram, right: linear-Y CDF).

All of them are log-X. The zoomed view shows linear-Y histogram for the last two stops:

Note: in all the above examples, the histogram was heavily smoothed, while the CDF is totally raw.

Wait, what? Smoothing?

RawDigger displays thin bars. ML spreads them to nearby bins, to get a continuous graph (though it's still jagged). To draw the lines nicely, I've applied some additional smoothing in shadows, and also wherever the number of data points was very small. You may want to know how much I'm smoothing, so here are some examples.

Top: log histogram. Bottom: CDF.

Left: raw (no smoothing, no spreading). Middle: shadow spreading only. Right: spreading + smoothing.

Test image: ISO 3200, 2-minute exposure (AutoETTR was a bit overzealous when picking this ISO).

In the CDF images, there's barely any difference! They are already smooth out of the box!

On the other hand, the histogram requires aggressive smoothing to look acceptable.

Let's try an extreme example - one where the raw CDF looks bad:

CDF already looks very good after spreading - there's no need for additional trickery.

Histogram:

- left side resembles RawDigger display (this one is totally raw)

- after spreading, there's still one gap left (that gap is actually in the raw data, so it's showing the truth)

- after smoothing, I still don't like the result (too many waves...)

P.S. It's refreshing to be able to program all this without one single shutter actuation

(everything was done in QEMU, with existing CR2 images as reference data)