Skip to content

Circuit Visualization

API reference for circuit drawing, statistics, and summary functions. Provides text, image, and LaTeX output for quantum circuits, as well as gate/layer distribution analysis.

circuit_summary

Generates a statistical summary of a quantum circuit, including gate counts and layer counts by category.

Signature

python
circuit_summary(prog, show: bool = True) -> CircuitSummary

Parameters

ParameterTypeDescription
progQProg or QCircuitThe quantum circuit to analyze
showboolWhether to immediately display the pie chart visualization (default True)

Returns

CircuitSummary -- an object holding circuit statistics and visualization methods.

Examples

python
from pyqpanda3 import core as pq
from pyqpanda3.visualization import circuit_summary

q = pq.Qubit(0)
prog = pq.QProg()
prog << pq.H(q) << pq.CNOT(q, pq.Qubit(1))

summary = circuit_summary(prog, show=False)
print(summary)
print(f"Total gates: {summary.info.node_num}")
print(f"Total layers: {summary.info.layer_num}")

CircuitSummary

Container for circuit statistics returned by circuit_summary. Holds a ProgInfo dataclass and provides display methods.

Signature

python
class CircuitSummary

Attributes

AttributeTypeDescription
infoProgInfoDataclass containing gate and layer statistics

ProgInfo fields

FieldTypeDescription
single_gate_numintNumber of single-qubit gates
double_gate_numintNumber of two-qubit gates
multi_control_gate_numintNumber of multi-control gates
node_numintTotal number of gate nodes
single_gate_layer_numintNumber of single-gate layers
double_gate_layer_numintNumber of double-gate layers
layer_numintTotal number of layers

Methods

show()

Displays a pie chart with gate and layer distribution.

python
summary.show()

__str__()

Returns a formatted string with detailed circuit information including qubit count, gate map, parameterized gate count, and parameter count.

python
print(summary)

show_prog_info_count

Displays pie charts showing the distribution of gate nodes and layers in a quantum circuit.

Signature

python
show_prog_info_count(prog) -> None

Parameters

ParameterTypeDescription
progQProg or QCircuitThe quantum circuit to analyze

Description

Renders two pie charts using matplotlib:

  • Top chart -- node distribution: Single Gate Node, Double Gate Node, Multi Control Gate Node, Other Nodes
  • Bottom chart -- layer distribution: Single Gate Layer, Double Gate Layer, Other Layers

Examples

python
from pyqpanda3 import core as pq
from pyqpanda3.visualization import show_prog_info_count

q = pq.Qubit(0)
prog = pq.QProg()
prog << pq.H(q) << pq.CNOT(q, pq.Qubit(1))

show_prog_info_count(prog)

draw (QProg / QCircuit method)

Draws a quantum circuit in text, image, or LaTeX format. Injected onto QProg and QCircuit at import time.

Signature

python
prog.draw(output='text', filename=None, scale=0.7, fold=30,
          with_logo=False, with_gate_params=False, line_length=100,
          NodeIter_first=None, NodeIter_second=None,
          console_encode_type='utf8') -> str | None

Parameters

ParameterTypeDefaultDescription
outputstr'text'Output format: 'text' (ASCII), 'pic' (matplotlib image), or 'latex'
filenamestr or NoneNoneOutput file path. For 'pic' defaults to QCircuit_pic.jpg. For 'latex' defaults to QCircuit_latex.tex. For 'text', if specified, saves text to file
scalefloat0.7Image scale factor (only for 'pic' output)
foldint30Maximum width of image in gate units (only for 'pic' output)
with_logoboolFalseWhether to include a logo (only for 'latex' output)
with_gate_paramsboolFalseWhether to display gate parameters
line_lengthint100Line length for 'text' output
NodeIter_firstiterator or NoneNoneCircuit start position for partial drawing
NodeIter_seconditerator or NoneNoneCircuit end position for partial drawing
console_encode_typestr'utf8'Console encoding type for 'text' output. Supported values: 'utf8', 'gbk'

Returns

  • 'text' and 'latex' -- returns str
  • 'pic' -- returns None (image saved to file)

Examples

python
from pyqpanda3 import core as pq

q = pq.Qubit(0)
prog = pq.QProg()
prog << pq.H(q) << pq.CNOT(q, pq.Qubit(1))

# ASCII text output
text = prog.draw()
print(text)

# Save to image file
prog.draw('pic', filename='my_circuit.png')

# LaTeX source
latex = prog.draw('latex')
print(latex)

# Show gate parameters in text output
prog.draw('text', with_gate_params=True)

# Partial drawing using iterators
prog.draw('text', NodeIter_first=prog.begin(), NodeIter_second=prog.end())

See Also

Released under the MIT License.