Such simple but clever circuits of LED voltage indicators have always attracted me and made me come up with the simplest possible solutions. There was an additional difficulty here - the indicator did not have its own power supply, but had to be powered from the input source. This awakened the inventiveness in me and made me join the competition here.
Improving the transistor circuit
First, I improved (added current-limiting and current-equalizing resistors to) the @Chromatix's transistor circuit.
simulate this circuit – Schematic created using CircuitLab
Inventing a new diode circuit
But the real challenge for me was to make a diode circuit in which the brightness of the LEDs does not depend on the varying supply (input) voltage. Guided by the notion that the path by which we arrived at the final circuit solution is more important than the circuit itself, I have shown below in four successive steps the course of my thoughts.
Since my goal is to reveal the idea, I have considered a conceptual circuit with "ideal" diodes.
Basic idea
Such an LED bar indicator is a set of LEDs with step-increasing threshold voltages.
Parallel limiting. I came to the idea that in addition to threshold diode elements (Zener diodes or the LEDs themselves) connected in series, there is also a need for diode elements (Zener diodes) connected in parallel to fix the input voltage of each cell. Thus the currents will be equal.
Series limiting. Another solution would be to limit the current through the LED by a constant-current element but more on that later.
LED as a threshold element...
The single LED is itself a threshold element - it starts to pass current and lights up when the voltage across it exceeds its threshold voltage.
simulate this circuit
It is a very sensitive indicator that sharply reduces its "resistance" at that moment. As a result, the current increases sharply when the voltage increases and exceeds the maximum permissible value.
... with current-limiting resistor...
To limit the current, we insert a constant resistor R in series. The requirements for its resistance are contradictory - on the one hand, it must be low (to ensure high sensitivity) and on the other hand, it must be high enough (to limit the current to the permissible value).
simulate this circuit
But still the current varies and the LED changes its brightness when the input voltage varies.
... constant brightness...
We have to somehow make the current constant. We have two options to do it - either make the voltage constant or the resistance dynamic. Let's try the first one by starting to reason like this:
Once the LED starts to glow with its normal brightness, the voltage across the R-LED network should stop changing. Clearly, we have to connect a (Zener) diode in parallel to the network (I have used a forward-biased "ideal" diode for this purpose).
simulate this circuit
However, there is no desired change in the current through the LED...
... but the current through the shunt diode D has become unacceptably high.
... another current-limiting resistor...
Ah, we had to include another current-limiting resistor R1 because of the D diode.
simulate this circuit
Thus a kind of "voltage window" is obtained within which the current changes and then remains constant.
... and "lifted" threshold...
We can increase the threshold of the cell by "lifting" it on the right with a second (reference) voltage source Vref.
simulate this circuit
Thus we artificially increase the threshold voltage of the LED.
... with reference diode
But there is no power supply here to get Vref from. So, we again use another (Zener) diode D2 through which we pass the current of the cell and use the voltage drop across it as Vref.
simulate this circuit
LED bar assembled
Now it remains only to make a ladder of such cells and we get the desired LED bar indicator.
simulate this circuit
I have shown only three cells, but it can be expanded with more cells, only the current consumed increases (a disadvantage of the parallel configuration).
Advantages
As you can see, two more clever tricks are added to this Russian Matryoshka-like structure:
The shunt diodes (D1, D2, D3...) are not grounded but connected in parallel to the R-LED networks. The advantage of this connection is that the diodes have the same low threshold voltage.
The reference diodes (D4, D5...) are connected in series. The advantage of this string connection is that the diodes can have lower threshold voltage (because they are summed).