0

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

4

1 回答 1

1

对的,这是可能的。

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

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

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 = q.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()

在此处输入图像描述

于 2021-03-26T11:45:31.603 回答