matplotlib QuTip Bloch球的子图

pgky5nke  于 2023-10-24  发布在  其他
关注(0)|答案(1)|浏览(94)

我想知道是否可以用两个子图绘制一个图形,其中一个是常规的2D图,另一个是Bloch球体。

gcxthw6b

gcxthw6b1#

是的,有可能。
您需要手动创建figure对象,并使用matplotlib的OO接口将axes添加到其中。在制作需要具有Bloch球体的轴时,您应该将投影设置为3D。最后,只需在Bloch球体对象上调用render方法,以便Bloch球体渲染到正确的子图

from mpl_toolkits.mplot3d import Axes3D
import matplotlib.pyplot as plt
from qutip import Bloch

fig = plt.figure(constrained_layout=True)

ax1 = fig.add_subplot(1, 2, 1)
ax1.plot(range(10), range(10), "o-")

ax2 = fig.add_subplot(1, 2, 2, projection='3d')
b1 = Bloch(fig=fig, axes=ax2)
b1.render(fig=fig, axes=ax2)
ax2.set_box_aspect([1, 1, 1]) # required for mpl > 3.1

plt.show()

相关问题