core.circuit.drawer#

Classes#

GateComponent

Gate component for plotting quantum circuits.

Functions#

plot_quantum_circuit(→ None)

Plot a quantum circuit diagram.

add_gate(ax, gate, time_step, gate_width)

Add a gate to the quantum circuit diagram.

gate_name(→ str)

Get the display name for a quantum gate.

get_text_width(→ float)

Calculate the width of text based on font size and a ratio.

calculate_gate_width(→ float)

Calculate the width of a gate based on its text representation.

add_control_target(ax, gate, time_step)

Add control and target points for multi-qubit gates.

add_control(ax, qubit, time_step)

Add a control point to the quantum circuit diagram.

add_target(ax, qubit, time_step)

Add a target point to the quantum circuit diagram.

add_measurement(ax, qubit, time_step)

Add a measurement gate to the quantum circuit diagram.

add_connection(ax, qubit1, qubit2, time_step)

Add a connection line between two qubits in the quantum circuit diagram.

check_final_measurement(→ bool)

Check if the quantum circuit ends with measurement gates.

plot_style()

Context manager for setting plot style.

Module Contents#

class GateComponent#

Bases: NamedTuple

Gate component for plotting quantum circuits.

–| |

^– gate (center) position

gate: core.circuit.circuit.Gate#
position: float#
width: float#
plot_quantum_circuit(circuit: core.circuit.circuit.QuantumCircuit, title: bool | str = True, decompose_level: int = 0) None#

Plot a quantum circuit diagram.

Parameters:
  • circuit (QuantumCircuit) – The quantum circuit to plot.

  • title (Union[bool, str], optional) – Title of the plot. If True, use default title. If False, no title. If string, use as custom title. Defaults to True.

  • decompose_level (int, optional) – The level of circuit decomposition.

add_gate(ax: matplotlib.pyplot.Axes, gate: core.circuit.circuit.Gate, time_step: float, gate_width: float)#

Add a gate to the quantum circuit diagram.

gate_name(gate: core.circuit.circuit.Gate) str#

Get the display name for a quantum gate.

Parameters:

gate (Gate) – The quantum gate.

Returns:

The display name of the quantum gate.

Return type:

str

Examples

>>> gate_name(SingleQubitGate(0, SingleQubitGateType.H))
'$H$'
get_text_width(text: str, fontsize: int, ratio: float = 0.4) float#

Calculate the width of text based on font size and a ratio.

calculate_gate_width(gate: core.circuit.circuit.Gate) float#

Calculate the width of a gate based on its text representation.

add_control_target(ax: matplotlib.pyplot.Axes, gate: core.circuit.circuit.TwoQubitGate | core.circuit.circuit.ParametricTwoQubitGate | core.circuit.circuit.ThreeQubitGate, time_step: float)#

Add control and target points for multi-qubit gates.

add_control(ax: matplotlib.pyplot.Axes, qubit: int, time_step: float)#

Add a control point to the quantum circuit diagram.

add_target(ax: matplotlib.pyplot.Axes, qubit: int, time_step: float)#

Add a target point to the quantum circuit diagram.

add_measurement(ax: matplotlib.pyplot.Axes, qubit: int, time_step: float)#

Add a measurement gate to the quantum circuit diagram.

add_connection(ax: matplotlib.pyplot.Axes, qubit1: int, qubit2: int, time_step: float)#

Add a connection line between two qubits in the quantum circuit diagram.

check_final_measurement(circuit: core.circuit.circuit.QuantumCircuit) bool#

Check if the quantum circuit ends with measurement gates.

plot_style()#

Context manager for setting plot style.