Skip to main contentIBM Quantum Documentation


qiskit.visualization.plot_circuit_layout(circuit, backend, view='virtual', qubit_coordinates=None)

GitHub(opens in a new tab)

Plot the layout of a circuit transpiled for a given target backend.


  • circuit (QuantumCircuit) – Input quantum circuit.

  • backend (Backend) – Target backend.

  • view (str(opens in a new tab)) –

    How to label qubits in the layout. Options:

    • "virtual": Label each qubit with the index of the virtual qubit that mapped to it.
    • "physical": Label each qubit with the index of the physical qubit that it corresponds to on the device.
  • qubit_coordinates (Sequence) – An optional sequence input (list or array being the most common) of 2d coordinates for each qubit. The length of the sequence must match the number of qubits on the backend. The sequence should be the planar coordinates in a 0-based square grid where each qubit is located.


A matplotlib figure showing layout.

Return type




from qiskit import QuantumCircuit, transpile
from qiskit.providers.fake_provider import GenericBackendV2
from qiskit.visualization import plot_circuit_layout
ghz = QuantumCircuit(3, 3)
for idx in range(1,3):,idx)
ghz.measure(range(3), range(3))
backend = GenericBackendV2(num_qubits=5)
new_circ_lv3 = transpile(ghz, backend=backend, optimization_level=3)
plot_circuit_layout(new_circ_lv3, backend)
Was this page helpful?
Report a bug or request content on GitHub.