Visualization
The pyqpanda3.visualization module provides tools for visualizing quantum states, circuits, and probability distributions using matplotlib, including Bloch sphere plots, state vector diagrams, probability bar charts, and circuit drawings with statistics and ASCII art. It also provides instruction-schedule visualization (draw_time_scheduling()) to render the scheduled instruction stream produced by QProg.to_instruction() as a timeline figure.
Import
python
from pyqpanda3 import visualization
# or
import pyqpanda3.visualizationSub-topics
| Topic | Description |
|---|---|
| Bloch Sphere | Bloch sphere plotting functions |
| Quantum State | State vector and density matrix visualization |
| Probability | Probability distribution plotting |
| Circuit | Circuit drawing, statistics, and ASCII art |
| Time Scheduling | draw_time_scheduling(), parse_instruction_schedule(), and other schedule visualization |
The .draw() Method
After importing the visualization module, QProg and QCircuit objects gain a .draw() convenience method for quick circuit rendering:
python
from pyqpanda3 import visualization
from pyqpanda3.core import QCircuit, H, CNOT
visualization # triggers the monkey-patch
circuit = QCircuit(2)
circuit << H(0) << CNOT(0, 1)
print(circuit.draw())Output:
┌─┐
q_0: |0>─┤H├ ───*──
└─┘ ┌──┴─┐
q_1: |0>──── ┤CNOT├
└────┘
c : / ═══════════Example
python
from pyqpanda3 import visualization
from pyqpanda3.core import CPUQVM, QProg, H, CNOT, measure
# Build and run a Bell-state program
prog = QProg()
prog << H(0) << CNOT(0, 1) << measure(0, 0) << measure(1, 1)
qvm = CPUQVM()
qvm.run(prog, 1000)
state = qvm.result().get_state_vector()
# Plot the resulting quantum state
fig = visualization.plot_state(state)
print(type(fig).__name__)