Circuit Plot¶
Matplotlib based plotting of quantum circuits.
Todo:
Optimize printing of large circuits.
Get this to work with single gates.
Do a better job checking the form of circuits to make sure it is a Mul of Gates.
Get multi-target gates plotting.
Get initial and final states to plot.
Get measurements to plot. Might need to rethink measurement as a gate issue.
Get scale and figsize to be handled in a better way.
Write some tests/examples!
- class sympy.physics.quantum.circuitplot.CircuitPlot(c, nqubits, **kwargs)[source]¶
A class for managing a circuit plot.
- sympy.physics.quantum.circuitplot.CreateCGate(name, latexname=None)[source]¶
Use a lexical closure to make a controlled gate.
- class sympy.physics.quantum.circuitplot.Mx(*args, **kwargs)[source]¶
Mock-up of an x measurement gate.
This is in circuitplot rather than gate.py because it’s not a real gate, it just draws one.
- class sympy.physics.quantum.circuitplot.Mz(*args, **kwargs)[source]¶
Mock-up of a z measurement gate.
This is in circuitplot rather than gate.py because it’s not a real gate, it just draws one.
- sympy.physics.quantum.circuitplot.circuit_plot(c, nqubits, **kwargs)[source]¶
Draw the circuit diagram for the circuit with nqubits.
- Parameters
c : circuit
The circuit to plot. Should be a product of Gate instances.
nqubits : int
The number of qubits to include in the circuit. Must be at least as big as the largest \(min_qubits\) of the gates.
- sympy.physics.quantum.circuitplot.labeller(n, symbol='q')[source]¶
Autogenerate labels for wires of quantum circuits.
- Parameters
n : int
number of qubits in the circuit.
symbol : string
A character string to precede all gate labels. E.g. ‘q_0’, ‘q_1’, etc.
>>> from sympy.physics.quantum.circuitplot import labeller
>>> labeller(2)
[‘q_1’, ‘q_0’]
>>> labeller(3,’j’)
[‘j_2’, ‘j_1’, ‘j_0’]