Concepts Beginner Free Part 1 of 5 12 min read By

How to Read the Bloch Sphere

A guided tour of the Bloch sphere using a live simulator: what the poles, the equator and the two angles actually mean, and why two states with identical measurement odds can sit on opposite sides of the ball.

What you'll learn

  • bloch sphere
  • qubit
  • superposition
  • quantum phase
  • state vectors

Prerequisites

  • No quantum background needed
  • Comfort with sine and cosine
  • Basic Python (for the optional code checks)

The Bloch sphere is the single most useful picture in quantum computing, and it is also the one most often waved at and never explained. This series fixes that. Over five parts we drive the interactive Bloch sphere simulator on this site, gate by gate, and every screenshot below is a real state the simulator produced. You can reproduce all of them yourself by clicking the same buttons.

This first part covers only one skill: reading the picture. No gates yet. By the end you will be able to look at any arrow on the sphere and say what the qubit is, what a measurement would do to it, and how it differs from the state next to it.

The map before the journey

Here is the sphere with nothing on it but its own geography.

The Bloch sphere with its three labelled axes: the blue Z axis running from |0> at the north pole to |1> at the south pole, the red X axis through |+> and |->, and the green Y axis through |i> and |-i>.
The six named states sit at the ends of the three axes. The yellow arrow (here pointing straight up) is the qubit's state.

Three things to notice.

Every point on the surface is a legal qubit state. Not just the six labelled ones. The surface is the complete catalogue of everything a single qubit can be. There is nothing else.

The arrow is the qubit. One arrow, one state. It always reaches the surface, never stops short.

The two poles are the classical bits. The north pole is |0⟩, the south pole is |1⟩. If your qubit’s arrow is parked on a pole, it is behaving like an ordinary bit and there is nothing quantum going on.

Everywhere else is superposition.

Latitude is the odds

Start the simulator and it sits at |0⟩, straight up.

Simulator showing the state vector pointing at the north pole, with the readout giving theta 0 degrees, phi 0 degrees, and measurement probabilities of 100 percent for |0> and 0 percent for |1>.
The ground state |0⟩. Every qubit in every quantum computer starts here.

The readout panel gives you two angles and two probabilities. The angle that matters right now is θ (theta), the polar angle measured down from the north pole. At the north pole θ is 0, and the qubit measures as 0 with 100% certainty.

Click the |1⟩ button and the arrow swings to the south pole.

The state vector pointing at the south pole, readout showing theta 180 degrees and a 100 percent probability of measuring |1>.
|1⟩ at θ = 180°. All the way down, all the way certain.

Halfway between them, on the equator, the odds are even. Click |+⟩:

The state vector lying flat on the equator pointing along the positive X axis, readout showing theta 90 degrees, phi 0 degrees, and 50 percent probabilities for both outcomes.
|+⟩ sits on the equator: θ = 90°, and the measurement is a coin flip.

That is the whole rule, and it is worth committing to memory:

Height on the sphere is the measurement probability. How far down the arrow tilts, and nothing else, decides the odds of getting 0 or 1.

The exact relationship is P(0) = cos²(θ/2). Drop the arrow to θ = 60° and you should get cos²(30°) = 0.75, so 75% zeros. The simulator agrees:

The state vector tilted 60 degrees from the north pole, readout showing theta 60 degrees and probabilities of 75 percent for |0> and 25 percent for |1>.
A 60° tilt gives a 75/25 split, not the 67/33 you might have guessed. The halving of the angle is the reason.

That θ/2 catches people out. A 60° tilt does not mean the state is “60% of the way to |1⟩”. The amplitudes carry cos(θ/2) and sin(θ/2), and the probabilities are their squares. Part 4 comes back to why the half-angle is there.

Longitude is the phase, and it is invisible to a measurement

Now the part that makes the sphere worth drawing. Click |i⟩ and watch the arrow swing around the equator to a different place, staying at the same height.

The state vector on the equator pointing along the positive Y axis, readout showing theta 90 degrees, phi 90 degrees, and 50 percent probabilities for both outcomes, identical to the |+> state.
|i⟩ has exactly the same 50/50 probabilities as |+⟩. The only thing that changed is φ, the angle around the equator.

Compare that readout with the |+⟩ one above. The probability bars are identical. Both are 50/50. Yet |+⟩ and |i⟩ are genuinely different states, and a quantum computer can tell them apart perfectly.

The difference lives in φ (phi), the azimuthal angle going around the sphere, and φ is the relative phase. It contributes nothing to the odds of a Z measurement, which is why the bars do not move. What it does control is how the state behaves when you interfere it with something else. Phase is where quantum algorithms actually do their work: Grover’s, Shor’s and the quantum Fourier transform are all machines for pushing φ around until the phases cancel on the wrong answers and reinforce on the right one.

So the second rule:

The angle around the sphere is phase. Measurement in the computational basis cannot see it. Interference can.

Put the two together and the general state is:

|ψ⟩ = cos(θ/2)|0⟩ + e^(iφ) sin(θ/2)|1⟩

θ sets the size of the two amplitudes. φ sets the phase between them. Two angles, two degrees of freedom, one sphere.

Checking the readout in Qiskit

The simulator is not doing anything you cannot reproduce in ten lines. This converts a statevector into the same θ and φ the panel shows.

import numpy as np
from qiskit.quantum_info import Statevector

def bloch_angles(sv):
    """Return (theta, phi) in degrees for a single-qubit statevector."""
    a, b = sv.data                       # amplitudes of |0> and |1>
    if abs(a) > 1e-9:
        # Rotate away the global phase so the |0> amplitude is real and positive.
        b = b * np.exp(-1j * np.angle(a))
        a = abs(a)
    theta = 2 * np.arccos(min(1.0, abs(a)))
    phi = np.angle(b) if abs(b) > 1e-9 else 0.0
    return np.degrees(theta), np.degrees(phi) % 360

named = {
    "|0>": Statevector([1, 0]),
    "|1>": Statevector([0, 1]),
    "|+>": Statevector(np.array([1, 1]) / np.sqrt(2)),
    "|i>": Statevector(np.array([1, 1j]) / np.sqrt(2)),
}

for name, sv in named.items():
    theta, phi = bloch_angles(sv)
    p0, p1 = np.abs(sv.data) ** 2
    print(f"{name:4}  theta={theta:6.1f}  phi={phi:6.1f}   P(0)={p0:.2f}  P(1)={p1:.2f}")
|0>   theta=   0.0  phi=   0.0   P(0)=1.00  P(1)=0.00
|1>   theta= 180.0  phi=   0.0   P(0)=0.00  P(1)=1.00
|+>   theta=  90.0  phi=   0.0   P(0)=0.50  P(1)=0.50
|i>   theta=  90.0  phi=  90.0   P(0)=0.50  P(1)=0.50

There is |+⟩ and |i⟩ again: same probabilities, 90° apart in φ. The numbers match the panel exactly.

And the 60° tilt from the screenshot above:

from qiskit import QuantumCircuit

qc = QuantumCircuit(1)
qc.ry(np.radians(60), 0)          # tilt 60 degrees away from the north pole
sv = Statevector(qc)

theta, phi = bloch_angles(sv)
print(f"theta={theta:.1f}  phi={phi:.1f}  P(0)={abs(sv.data[0]) ** 2:.3f}")
print(f"cos^2(theta/2) = {np.cos(np.radians(theta) / 2) ** 2:.3f}")
theta=60.0  phi=0.0  P(0)=0.750
cos^2(theta/2) = 0.750

The one thing beginners get backwards

Two states are perfectly distinguishable (orthogonal) when their arrows point in opposite directions, not when they are at right angles. |0⟩ and |1⟩ are opposite poles. |+⟩ and |−⟩ are opposite ends of the X axis.

Arrows at 90° on the sphere are not orthogonal states. The overlap between two states whose Bloch vectors are γ apart is:

|⟨ψ₁|ψ₂⟩|² = cos²(γ/2)

For γ = 90° that gives 0.5, so |0⟩ and |+⟩ have a 50% overlap and one measurement cannot separate them reliably. Even the single best measurement allowed by physics still guesses wrong about 15% of the time. Only at γ = 180° does the overlap fall to zero and the two states become perfectly distinguishable.

This is the same factor of two showing up again. Angles on the Bloch sphere are always double the angles in the underlying state space. It is the price of squashing a complex two-dimensional space down to a picture you can hold in your hand.

What you can now read

Given any arrow on the sphere, you can state:

  • How far down it points (θ) gives you the measurement odds: P(0) = cos²(θ/2).
  • Which way round it points (φ) gives you the relative phase, which no computational-basis measurement will ever reveal.
  • Opposite arrows are perfectly distinguishable states. Everything else overlaps.
  • The surface is the whole story for a single isolated qubit. Nothing lives inside the ball, yet. Part 5 explains what changes when it does.

Open the simulator and click through the six named states until the readout stops surprising you. Then carry on to Part 2, where the arrow finally starts to move and every quantum gate turns out to be nothing more exotic than a rotation.

Try it yourself: Interactive Bloch Sphere

Open full screen ↗

Apply X, Y, Z, H, S, T, and rotation gates and watch the qubit state rotate in 3D in real time. It runs entirely in your browser, no signup or install.

Was this tutorial helpful?