在混合2D和3D子图时,我很难去除多余白色。对于纯3D子图,我可以调整用fig.subplots_adjust()
绘制的区域以删除白色,参见here。
然而,如果这个3D图像在2D子图中,同样的技巧就不起作用了。我创建了如下混合子图:
import matplotlib.pyplot as plt
from matplotlib import cm
from mpl_toolkits.mplot3d import axes3d
fig,axes = plt.subplots(2,2)
ax = axes.flat
for a in range(3):
ax[a].plot(range(10),range(10))
ax[3].remove()
ax[3] = fig.add_subplot(224,projection='3d')
X, Y, Z = axes3d.get_test_data(0.03)
ax[3].plot_surface(X, Y, Z, rstride=8, cstride=8, alpha=0.8,cmap=cm.coolwarm)
ax[3].set_xticklabels('')
ax[3].set_yticklabels('')
ax[3].set_zticklabels('')
fig.subplots_adjust(hspace=0,wspace=0)
现在的把戏EG。fig.subplots_adjust(left=-0.01)
将作用于2D子图的左边缘,并且不修改3D子图。有没有一种方法可以完全去除3D子图周围的白色?我也尝试了更小的ax.dist
,如果3D图在z方向上更长,那就不好了。
1条答案
按热度按时间56lgkhnf1#
轴周围没有空白,它甚至与其他子图重叠(它们的 Backbone.js 被3D轴隐藏)。
你要做的是调整轴内灰色立方体的大小。这可以通过改变到该立方体的观看距离来完成。
例如
ax[3].dist = 7
ax[3].dist = 9
最佳距离当然取决于视角。