此问题已在此处有答案:
Removing axes margins in 3D plot(2个答案)
5年前关闭。
我在matplotlib中为我的3d绘图设置限制时遇到了一个问题;我发现,无论我如何设置x、y和z轴的限制,3dplots的绘图例程都会添加额外的缓冲区。
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111,projection='3d')
ax.axes.set_xlim3d(left=0, right=10)
ax.axes.set_ylim3d(bottom=0, top=10)
ax.axes.set_zlim3d(bottom=0, top=10)
plt.show()
这将生成以下图:
正如你所看到的,限制应该在x,y,z = {0,10},但是3D绘图总是在每个边缘添加一点缓冲区。有没有人知道一个方法来关闭这个效果?
我也用过PLT。xlims();和ax.axes.set_xlims(),但它们产生相同的效果。
1条答案
按热度按时间kuuvgm7e1#
我认为这是故意的(见E。例如this),如果你尝试绘制
ax.axes.set_xlim3d(left=0.000001, right=9.9999999)
,那么你的图上没有显示0或10。即使是让数字尽可能接近也不起作用,e。g的。
我发现的最佳解决方案是手动设置刻度,然后稍微缩放,以便隐藏重叠。
这给
这是相当黑客,但可以做得更一般(我总是结束手动设置标记为出版质量数字)。或者,最好关闭最低的轴网线或隐藏轴网。..