如何设置图形的零边距-Matplotlib

如何将图形裁剪成没有空白的空白?为什么plt.tight_layout(pad = 0)不起作用?图片绘制3d坐标系。

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = plt.figure(figsize=[5,3])
ax = fig.gca(projection = '3d')

ax.set_ylim(-2,3)
ax.set_zlim(-1,2)

vleng = 5
aleng = vleng/3.

p = np.array([vleng+200,0])
q = np.array([0,vleng-2,0])
r = np.array([0,vleng-3])

ax.plot(*np.vstack([[0,0],p]).T,color='black')
ax.plot(*np.vstack([[0,q]).T,r]).T,color='black')

ax.azim = 20    # y rotation (default=270)
ax.elev = 20    # x rotation (default=0)
ax.dist = 10    # zoom (define perspective)

ax.set_axis_off( )  # hide all grid

plt.tight_layout(pad=0)
plt.show()

输出:

figure

shao__fei 回答:如何设置图形的零边距-Matplotlib

所以我尝试了很多事情。减少这些空白的唯一方法是,沿着飞机的相交线绘制三条线。因此,我进行了一些测量,这是其中空格显着减少的代码。您可以通过进一步调整来进一步减少它。同时注释掉ax.set_axis_off( ),以查看发生了什么事:

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
import numpy as np

fig = plt.figure(figsize=[5,3])
ax = fig.gca(projection = '3d')


ax.set_ylim(0,3)
ax.set_zlim(0,2)
# ax.set_xlim(0,2)

vleng = 5
aleng = vleng/3.

p = np.array([vleng+200,0])
q = np.array([0,vleng-2,0])
r = np.array([0,vleng-3])

ax.plot(*np.vstack([[0,0],p]).T,color='black')
ax.plot(*np.vstack([[0,q]).T,r]).T,color='black')

ax.azim = 20    # y rotation (default=270)
ax.elev = 20    # x rotation (default=0)
ax.dist = 10    # zoom (define perspective)

ax.set_axis_off( )  # hide all grid

plt.tight_layout(pad=0)
plt.show()
本文链接:https://www.f2er.com/3133070.html

大家都在问