2D-графики не стоят на одном уровне со стенами 3D-оси в python mplot3D

Я пытаюсь нанести 2D-данные на 3D-ось. У меня есть 3D-форма, работающая с использованиемax.plot_surface но я не могу заставить 2D-данные сидеть вплотную к стенам оси, используяax.plot.

Вот урезанный пример кода, показывающий проблему, которую я имею с 2D-данными:

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

# Generate Example Data
x = [0.04,0,-0.04]
y = [0.04,0,-0.04]
z = [0.04,0,-0.04]

# Start plotting environment
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')

# Plot 3 lines positioned against the axes "walls"
ax.plot(x,y,-0.08,zdir='z',c='r')
ax.plot(x,z, 0.08,zdir='y',c='g')
ax.plot(y,z,-0.08,zdir='x',c='b')

# Label each axis
ax.set_xlabel('x')
ax.set_ylabel('y')
ax.set_zlabel('z')

# Set each axis limits
ax.set_xlim([-0.08,0.08])
ax.set_ylim([-0.08,0.08]) 
ax.set_zlim([-0.08,0.08]) 

# Equally stretch all axes
ax.set_aspect("equal")

# Set plot size for saving to disk
plt.gcf().set_size_inches(11.7,8.3) 

# Save figure in .eps and .png format
plt.savefig('test.eps', format='eps')
plt.savefig('test.png', format='png', dpi=300)

# Display figure
plt.show()

Это дает следующий результат, из которого вы можете увидеть, что концы строк данных не располагаются на линиях осей (т.е. не совпадают с 0,04 и -0,04):

Путем интерактивного изучения сюжета я определил, что изменение 0,08 вax.plot звонки, с величиной 0,083 (при сохранении соответствующих знаков) позволяет сюжетам быть намного более плоскими к стене.

Моя интерпретация этого заключается в том, что на графике не соблюдаются границы моей оси, что очевидно на графике, если смотреть на расстояния между осями, но используяax.get_xlim() и т.д., показывает значения, которые я установил, поэтому я что-то упускаю.

Любые идеи о том, как я могу заставить эти участки сидеть вплотную к стенам?

Большое спасибо,

Тим

Редактировать:

Я также попытался установить пределы оси, используя

ax.set_xlim3d(-0.08,0.08)
ax.set_ylim3d(-0.08,0.08) 
ax.set_zlim3d(-0.08,0.08) 

а также

 ax.set_xlim3d([-0.08,0.08])
 ax.set_ylim3d([-0.08,0.08]) 
 ax.set_zlim3d([-0.08,0.08])

без удачи.

Я определенно склоняюсь к тому, чтобы отнести это к проблеме заполнения, где встречаются оси, но я не могу найти никакой документации по этому поводу. то есть. Я устанавливаю положение графика на -0,08, а предел оси на -0,08, но график добавляет небольшой отступ в конце, чтобы установить пределы где-то между -0,082 и -0,083.

Я либо хочу удалить заполнение, либо получить значение заполнения, чтобы я мог ввести его вax.plot команда.

Edit2:

Кто-то еще, кто сталкивался с этой проблемой, но не решил проблемуИзменение положения стен сетки на рисунке mplot3d

Ответы на вопрос(1)

Ваш ответ на вопрос