python - real - Superposición de la marca de verificación del eje y y la marca de verificación del eje x en matplotlib
matplotlib python 3 (4)
En el módulo de ticker hay una clase llamada MaxNLocator que puede tomar un kwarg de prune
.
Usando eso puedes eliminar el primer tic:
import matplotlib.pyplot as plt
from matplotlib.ticker import MaxNLocator
import numpy as np
xx = np.arange(0,5, .5)
yy = np.random.random( len(xx) )
plt.plot(xx,yy)
plt.gca().xaxis.set_major_locator(MaxNLocator(prune=''lower''))
plt.show()
Resultado:
Si creo un diagrama con matplotlib usando el siguiente código:
import numpy as np
from matplotlib import pyplot as plt
xx = np.arange(0,5, .5)
yy = np.random.random( len(xx) )
plt.plot(xx,yy)
plt.imshow()
Obtengo un resultado que se parece a la imagen adjunta. El problema es que la etiqueta y-tick situada en el extremo inferior coincide con la etiqueta x-tick situada más a la izquierda. Esto parece poco profesional. Me preguntaba si había una forma automática de eliminar la etiqueta y-tick más inferior, por lo que no tengo el problema de superposición. Cuantas menos líneas de código, mejor.
Esto se responde en detalle here . Básicamente, utilizas algo como esto:
plt.xticks([list of tick locations], [list of tick lables])
Puede rellenar las marcas en el eje x:
ax.tick_params(axis=''x'', pad=15)
Reemplace ax
con plt.gca()
si no ha almacenado el ax
variable para la figura actual.
También puede rellenar ambos ejes quitando el parámetro del axis
.
Una forma muy elegante de solucionar el problema de superposición es aumentar el relleno de las etiquetas x e y-tick (es decir, la distancia al eje). Salir de la esquina la mayoría de las etiquetas no siempre se querrán. En mi opinión, en general, se ve bien si las etiquetas están un poco más alejadas del eje que las dadas por la configuración predeterminada.
El relleno se puede cambiar a través del archivo matplotlibrc o en la secuencia de comandos de la parcela mediante el uso de los comandos
import matplotlib as mpl
mpl.rcParams[''xtick.major.pad''] = 8
mpl.rcParams[''ytick.major.pad''] = 8
La mayoría de las veces, un relleno de 6 también es suficiente.