我想知道是否可以用两个子图绘制一个图形,其中一个是常规的2D图,另一个是Bloch球体。
gcxthw6b1#
是的,有可能。您需要手动创建figure对象,并使用matplotlib的OO接口将axes添加到其中。在制作需要具有Bloch球体的轴时,您应该将投影设置为3D。最后,只需在Bloch球体对象上调用render方法,以便Bloch球体渲染到正确的子图
figure
axes
render
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()
1条答案
按热度按时间gcxthw6b1#
是的,有可能。
您需要手动创建
figure
对象,并使用matplotlib的OO接口将axes
添加到其中。在制作需要具有Bloch球体的轴时,您应该将投影设置为3D。最后,只需在Bloch球体对象上调用render
方法,以便Bloch球体渲染到正确的子图