pyqpanda3 v0.3.4 引入了全新的统一可视化模块,包含三个主要绘图函数:plot_state、plot_bloch 和 plot_probabilities。
可视化功能
pyqpanda3.visualization 模块提供了全面的量子态可视化功能:
态可视化。 plot_state() 将量子态向量渲染为 3D 城市图或密度矩阵可视化。
布洛赫球可视化。 plot_bloch() 在布洛赫球上绘制量子态。它接受态向量(用于多量子比特布洛赫球)、布洛赫向量(3元素列表,用于单量子比特)或量子电路。
概率分布。 plot_probabilities() 绘制测量结果的概率分布,支持 top_k 过滤。
python
from pyqpanda3.core import QProg, H, CNOT, RX, RY
from pyqpanda3.visualization import plot_state, plot_bloch, plot_probabilities
import numpy as np
# 构建贝尔态电路
prog = QProg()
prog << H(0) << CNOT(0, 1)
# 可视化量子电路
prog.draw()
# 输出:
# q[0] |0>──H──●────────
# │
# q[1] |0>──────⊕────────
# 绘制态向量为 3D 城市图
state = np.array([1/np.sqrt(2), 0, 0, 1/np.sqrt(2)], dtype=complex)
plot_state(state)
# 在布洛赫球上可视化
plot_bloch(state)
# 测量结果的概率分布
probs = {'00': 0.5, '11': 0.5}
plot_probabilities(probs)
# 仅显示前 3 个结果
plot_probabilities(probs, top_k=3)
# 单量子比特布洛赫球(带旋转操作)
qprog = QProg()
qprog << RX(0, 1.5) << RY(0, 0.8)
plot_bloch(qprog)