¿Cómo puedo dibujar líneas de eje dentro de un gráfico en Matplotlib?

Cuando grafico los datos utilizando Matplotlib, los ejes siempre se trazan de forma predeterminada como un cuadro que enmarca la ttwig. Digamos que estoy trazando datos dentro de los límites del eje -2 < x < 2 y -2 < y < 2 , pero me gustaría dibujar líneas de eje dentro de esta área de trazado a través del origen, preferiblemente con marcas y tags de tictac en estas líneas de eje no a lo largo del marco exterior.

Esto está bien documentado en el ejemplo de colocación de espinas (enlace antiguo) / colocación de columna vertebral (enlace nuevo).

Va a apagar las espinas derecha y superior (por ejemplo, spines['right'].set_color('none') ), y mover las espinas izquierda y abajo a la posición cero (por ejemplo, spines['left'].set_position('zero') ).

 import numpy as np import matplotlib.pyplot as plt fig = plt.figure() x = np.linspace(-np.pi, np.pi, 100) y = 2*np.sin(x) ax = fig.add_subplot(111) ax.set_title('zeroed spines') ax.plot(x, y) ax.spines['left'].set_position('zero') ax.spines['right'].set_color('none') ax.spines['bottom'].set_position('zero') ax.spines['top'].set_color('none') # remove the ticks from the top and right edges ax.xaxis.set_ticks_position('bottom') ax.yaxis.set_ticks_position('left') 

introduzca la descripción de la imagen aquí

Al menos puedo dar una respuesta a medias. Sí, puedes dibujar fácilmente las líneas de los ejes. Es tan simple como

 plt.axvline(0) plt.axhline(0) 

Los ejes originales permanecerán, pero se pueden desactivar con plt.axis('off') . Tampoco le dará ninguna marca de verificación.