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

如何在含其他数据的大图中嵌入QuTiP Bloch球作为小插图?

解决QuTiP Bloch球作为小插图显示为空的问题

我来帮你搞定这个小插图为空的问题!你遇到的核心问题是没有正确将Bloch球实例绑定到指定的子图上,而且缺少了关键的渲染步骤。我们来一步步修正代码:

修正后的完整代码示例

假设你已经有了主图的绘制代码,下面是嵌入Bloch球小插图的正确写法:

# 先创建主图(替换成你自己的主图绘制代码)
fig, main_ax = plt.subplots()
# 主图的绘制内容...

# 创建Bloch球对应的子图(位置为3行2列的第6个区域)
bloch_subax = plt.subplot(326)

# 初始化Bloch球并绑定到目标子图的axes
b = qt.Bloch(axes=bloch_subax)
# 添加你的点数据
pnt = [px[:], py[:], pz[:]]
b.add_points(pnt)
# 设置Bloch球的标题,调整位置避免遮挡
b.fig.suptitle('Bloch sphere', y=1.05)

# 关键步骤:手动渲染Bloch球(嵌入子图时必须调用)
b.render()

# 展示所有图形
plt.show()

关键修正点说明

  • 正确绑定子图axes:原来代码里b.fig = plt.subplot(326)的写法是错误的,应该先创建子图的axes对象,再在初始化Bloch时通过axes参数传入,这样Bloch球才会被绘制到指定的小插图位置。
  • 添加手动渲染步骤:单独显示Bloch球时QuTiP会自动处理渲染逻辑,但作为子图嵌入到大图中时,必须手动调用b.render()来完成图形绘制,否则小插图会呈现为空。
  • 标题位置优化:用b.fig.suptitle并调整y参数,可以避免标题和Bloch球的边框重叠,让显示效果更整洁。

排查小技巧

如果还是出现问题,可以先单独测试子图的创建是否正常:先在目标位置绘制一个简单的折线图确认位置无误,再替换成Bloch球的代码,逐步排查定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 09:28:15