You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Qiskit中让可视化在代码执行间隙显示(类似plt.show())

Qiskit中如何在代码执行间隙显示Bloch多矢量图?

你希望在代码执行过程中,在指定位置显示Qiskit生成的Bloch多矢量图,类似Matplotlib里plt.show()的效果,当前代码调用plot_bloch_multivector后无法在输出中看到图像,以下是解决方法:

问题重现代码

def test():
  return plot_bloch_multivector(circ)

print("This is what the plot looks like")
test()
print("See? Anyway...")
# more code

实际输出

This is what the plot looks like
See? Anyway...

期望输出

This is what the plot looks like
# O O O (displayed bloch multivector)
See? Anyway...

解决方法

Qiskit的plot_bloch_multivector返回的是Matplotlib Figure对象,因此可以直接使用Matplotlib的显示方法,或者利用Colab的IPython工具来控制图像显示:

方法1:调用Figure对象的.show()方法

修改代码,将返回的Figure对象保存后调用.show(),强制在代码执行到此处时显示图像:

from qiskit.visualization import plot_bloch_multivector
from qiskit import QuantumCircuit

# 示例量子电路(替换为你的实际电路)
circ = QuantumCircuit(2)
circ.h(0)
circ.cx(0, 1)

def test():
    return plot_bloch_multivector(circ)

print("This is what the plot looks like")
fig = test()
fig.show()  # 触发图像显示
print("See? Anyway...")

方法2:使用Colab的display()函数

利用IPython的display()函数,直接渲染Figure对象,确保在代码间隙显示:

from qiskit.visualization import plot_bloch_multivector
from qiskit import QuantumCircuit
from IPython.display import display

circ = QuantumCircuit(2)
circ.h(0)
circ.cx(0, 1)

def test():
    return plot_bloch_multivector(circ)

print("This is what the plot looks like")
fig = test()
display(fig)  # 强制显示图像
print("See? Anyway...")

这两种方法都能让图像在print语句之间显示,满足你的需求。

内容的提问来源于stack exchange,提问作者OasisQode

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 16:40:34