我想知道是否可以用两个子图绘制一个图形,其中一个是常规 2D 图,另一个是 Bloch 球体。
问问题
134 次
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 回答