可视化
pyqpanda3.visualization 模块提供了使用 matplotlib 可视化量子态、量子线路和概率分布的工具,包括 Bloch 球绘制、态矢量图、概率柱状图,以及带统计信息和 ASCII 艺术的线路图。此外还提供指令时序可视化(draw_time_scheduling()),用于把 QProg.to_instruction() 导出的带调度指令流绘制为时间线图。
导入
python
from pyqpanda3 import visualization
# or
import pyqpanda3.visualization子主题
| 主题 | 说明 |
|---|---|
| Bloch 球 | Bloch 球绘制函数 |
| 量子态 | 态矢量和密度矩阵可视化 |
| 概率 | 概率分布绘制 |
| 量子线路 | 线路绘制、统计和 ASCII 艺术 |
| 时间调度 | draw_time_scheduling()、parse_instruction_schedule() 等时序可视化 |
.draw() 方法
导入可视化模块后,QProg 和 QCircuit 对象将获得 .draw() 便捷方法,用于快速渲染线路:
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())运行结果:
┌─┐
q_0: |0>─┤H├ ───*──
└─┘ ┌──┴─┐
q_1: |0>──── ┤CNOT├
└────┘
c : / ═══════════示例
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__)