añadiendo marcas de eje extra utilizando matplotlib

Tengo un código de plot simple como

plt.plot(x,y) plt.show() 

Quiero agregar algunas marcas adicionales en el eje x además de las actuales, digamos en

 extraticks=[2.1, 3, 7.6] 

Como ve, no tengo un patrón para tics, por lo que no quiero boost la frecuencia de tic para todo el eje; solo conserva los originales y agrega esos extras …

¿Es posible, en absoluto?

Saludos

Sí, puedes probar algo como:

 plt.xticks(list(plt.xticks()[0]) + extraticks) 

La función a utilizar es xticks() . Cuando se llama sin argumentos, devuelve los ticks actuales. Llamándolo con argumentos, puede establecer las posiciones de tick y, opcionalmente, las tags.

En aras de la exhaustividad, me gustaría dar la gran respuesta de la versión OO de @ Lev-Levitsky:

 lines = plt.plot(x,y) ax = lines[0].axes ax.set_xticks(list(ax.get_xticks()) + extraticks) 

Aquí usamos el objeto Axes extraído de la secuencia Lines2D devuelta por el plot . Normalmente, si está utilizando la interfaz OO, ya tendría una referencia a los Axes en la parte delantera y llamaría a plot en ese lugar en lugar de hacerlo en pyplot .

Advertencia de la esquina

Si, por alguna razón, ha modificado los límites de sus ejes (por ejemplo, al hacer un zoom programático en una parte de los datos), deberá restaurarlos después de esta operación:

 lim = ax.get_xlim() ax.set_xticks(list(ax.get_xticks()) + extraticks) ax.set_xlim(lim) 

De lo contrario, la gráfica hará que el eje x muestre todas las marcas disponibles en el eje.