Matplotlib - Formatage des axes

Parfois, un ou quelques points sont beaucoup plus grands que la masse des données. Dans un tel cas, l'échelle d'un axe doit être définie comme logarithmique plutôt que sur l'échelle normale. Il s'agit de l'échelle logarithmique. Dans Matplotlib, c'est possible en définissant la propriété xscale ou vscale de l'objet axes sur 'log'.

Il est également parfois nécessaire d'afficher une distance supplémentaire entre les numéros d'axe et l'étiquette d'axe. La propriété labelpad de l'un des axes (x ou y ou les deux) peut être définie sur la valeur souhaitée.

Les deux fonctionnalités ci-dessus sont illustrées à l'aide de l'exemple suivant. La sous-parcelle de droite a une échelle logarithmique et celle de gauche a son axe x avec une étiquette à plus de distance.

import matplotlib.pyplot as plt
import numpy as np
fig, axes = plt.subplots(1, 2, figsize=(10,4))
x = np.arange(1,5)
axes[0].plot( x, np.exp(x))
axes[0].plot(x,x**2)
axes[0].set_title("Normal scale")
axes[1].plot (x, np.exp(x))
axes[1].plot(x, x**2)
axes[1].set_yscale("log")
axes[1].set_title("Logarithmic scale (y)")
axes[0].set_xlabel("x axis")
axes[0].set_ylabel("y axis")
axes[0].xaxis.labelpad = 10
axes[1].set_xlabel("x axis")
axes[1].set_ylabel("y axis")
plt.show()

Les épines des axes sont les lignes reliant les graduations des axes délimitant les limites de la zone de tracé. L'objet axes a des épines situées en haut, en bas, à gauche et à droite.

Chaque dos peut être formaté en spécifiant sa couleur et sa largeur. Tout bord peut être rendu invisible si sa couleur est définie sur aucune.

import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_axes([0,0,1,1])
ax.spines['bottom'].set_color('blue')
ax.spines['left'].set_color('red')
ax.spines['left'].set_linewidth(2)
ax.spines['right'].set_color(None)
ax.spines['top'].set_color(None)
ax.plot([1,2,3,4,5])
plt.show()