使用Qiskit的mpl模式绘制量子电路时输出Figure(...)无法显示图像如何解决
问题解答
1. Figure(...)的含义
该输出是Qiskit调用Matplotlib生成的Figure画布对象的默认文本表示,仅包含画布的尺寸信息,不是实际渲染的电路图。你用print()直接打印该对象只会输出这串标识,不会触发图像渲染。
2. 不同环境下的查看方法
Jupyter 环境
- 首先在代码开头添加魔法命令:
%matplotlib inline,保证Matplotlib生成的图像可以直接嵌入在Notebook单元格的输出区域 - 不要用
print()包裹Qc.draw(output='mpl')语句,直接单独写该语句即可,修改后对应代码段如下:
from qiskit import * %matplotlib inline # 同个Notebook内只需要运行一次,后续单元格无需重复添加 qr = QuantumRegister(2) cr = ClassicalRegister(2) Qc = QuantumCircuit(qr,cr) print ('This is the initial state') Qc.draw(output = 'mpl') # 去掉外层的print()包裹
Spyder 环境
- 确认你已经开启了Spyder的IPython控制台的Matplotlib内联渲染,或者配置为弹出独立窗口显示图像
- 同样不要用
print()包裹draw语句,调用draw之后再调用Matplotlib的show方法即可,修改后对应代码段如下:
from qiskit import * import matplotlib.pyplot as plt # 需导入matplotlib的pyplot模块 qr = QuantumRegister(2) cr = ClassicalRegister(2) Qc = QuantumCircuit(qr,cr) print ('This is the initial state') Qc.draw(output = 'mpl') plt.show() # 触发画布渲染
通用兜底方案
如果你需要把生成的电路图保存到本地文件直接查看,可以在draw方法中指定filename参数,示例:Qc.draw(output='mpl', filename='my_circuit.png')
运行后会直接在当前工作目录生成png格式的电路图文件,你可以直接打开查看。
内容的提问来源于stack exchange,提问作者Utsav Niroula
相关产品推荐
相关产品推荐

