Как установить нулевые поля фигуры - matplotlib - PullRequest
0 голосов
/ 09 ноября 2019

Как обрезать фигуру, чтобы не было пустого пространства, где ничего не изображено? Почему 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, 0])
q = np.array([0, vleng-2, 0])
r = np.array([0, 0, vleng-3])

ax.plot(*np.vstack([[0,0,0], p]).T, color='black')
ax.plot(*np.vstack([[0,0,0], q]).T, color='black')
ax.plot(*np.vstack([[0,0,0], 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()

Выход:

рисунок

1 Ответ

1 голос
/ 09 ноября 2019

Итак, я попробовал несколько вещей. Единственное, что уменьшило бы эти пробелы, потребовало бы провести три линии вдоль линий встречи самолетов. Итак, я сделал некоторые измерения, и вот код, где пробелы значительно уменьшились. Вы можете уменьшить его, настроив еще немного. Также закомментируйте 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, 0])
q = np.array([0, vleng-2, 0])
r = np.array([0, 0, vleng-3])

ax.plot(*np.vstack([[0,0,0], p]).T, color='black')
ax.plot(*np.vstack([[0,0,0], q]).T, color='black')
ax.plot(*np.vstack([[0,0,0], 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...