我可以将现有的 ax 对象转换为 3d 投影吗?

Dem*_*nos 3 python matplotlib

我已经使用plt.subplots(nrows = 2, ncols = 2). 我想提出ax[1,1]一个3D轴,所以我可以作出这样一个情节

无论如何,我可以将现有的斧头对象变成 3d 斧头吗?

tmd*_*son 8

不,因为 3D 轴是一个matplotlib.axes._subplots.Axes3DSubplot对象,而常规轴是一个matplotlib.axes._subplots.AxesSubplot对象。

因此,这不仅仅是更改现有对象的一个​​属性的情况,因为它是一个完全不同的对象,当您add_subplot(projection='3d').

我认为您必须明确创建子图,例如:

fig=plt.figure()
ax1=fig.add_subplot(2,2,1)
ax2=fig.add_subplot(2,2,2)
ax3=fig.add_subplot(2,2,3)
ax4=fig.add_subplot(2,2,4,projection='3d')
Run Code Online (Sandbox Code Playgroud)

或者,或者,删除 2D 轴并将其作为 3D 轴重新添加:

fig,ax = plt.subplots(nrows = 2, ncols = 2)
ax[1,1].remove()
ax[1,1]=fig.add_subplot(2,2,4,projection='3d')
Run Code Online (Sandbox Code Playgroud)