Las parcelas 2D no están alineadas contra las paredes del eje 3D en python mplot3D

Estoy tratando de trazar datos 2D en un eje 3D. Tengo la forma 3D trabajando usandoax.plot_surface pero no puedo hacer que los datos 2D se asienten contra las paredes del eje usandoax.plot.

Aquí hay un código de ejemplo simplificado que muestra el problema que estoy teniendo con los datos 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()

Esto proporciona el siguiente resultado desde el cual puede ver que los extremos de las líneas de datos no se asientan en las líneas del eje (es decir, no se alinean con 0.04 y -0.04):

Al explorar interactivamente la trama, determiné que cambiar los 0.08 enax.plot llamadas, a una magnitud de 0.083 (manteniendo los signos relevantes) permite que las parcelas se ajusten mucho más planas a la pared.

Mi interpretación de esto es que la trama no está imponiendo los límites de mi eje, lo que parece evidente en la trama al observar los espacios donde se encuentran los ejes, pero usandoax.get_xlim() etc, muestra los valores que configuré, así que me falta algo.

¿Alguna idea sobre cómo puedo hacer que estas parcelas se asienten contra las paredes?

Muchas gracias,

Tim

Editar:

También he intentado establecer los límites del eje usando

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

y

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

Sin suerte.

Definitivamente me inclino por atribuir esto a un problema de relleno donde los ejes se encuentran, pero no puedo encontrar ninguna documentación al respecto. es decir. Estoy configurando la posición del gráfico en -0.08 y el límite del eje en -0.08, pero el gráfico agrega un pequeño relleno al final para establecer los límites en algún lugar entre -0.082 y -0.083.

Quiero eliminar el relleno u obtener el valor del relleno para poder ingresarlo enax.plot mando.

Edit2:

Alguien más que ha encontrado este problema pero no ha resuelto el problemaCambiar la posición de las paredes de la cuadrícula en una figura mplot3d

Respuestas a la pregunta(1)

Su respuesta a la pregunta