Introduction
Dans ce tutoriel, nous allons discuter de la façon de changer la taille de police des étiquettes des axes d'une figure matplotlib en python. Il s'agit d'une compétence importante pour visualiser des données à l'aide de matplotlib, car cela nous permet de personnaliser nos figures et de les rendre plus attrayantes visuellement.
J'ai personnellement utilisé cette technique lors du traçage de données de séries temporelles, par exemple (voir par exempleHow to plot a time series in python ? ).
Créer une simple figure avec matplotlib
Avant de commencer à modifier la taille de la police des étiquettes des axes, créons d'abord une figure simple avec matplotlib:
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
x_values = [1.,2.,3.,4.,5.]
y_values = [1,4,9,16,25]
plt.scatter(x_values,y_values)
plt.title('How to change the font size \n of axis tick labels on a matplotlib figure ?', fontsize=14)
plt.savefig('matplotlib_font_size_axis_tick_labels_01.png', dpi=100, bbox_inches='tight')
plt.show()
Le code ci-dessus créera un graphique simple comprenant 5 points.
Voyons maintenant comment nous pouvons modifier la taille de police des étiquettes sur les axes de cette figure.
Changer la taille de la police
Pour modifier la taille de police des étiquettes sur un axe, nous pouvons utiliser les fonctions plt.xticks et plt.yticks. Ces fonctions nous permettent de spécifier les positions et les étiquettes sur nos axes.
En spécifiant un paramètre "fontsize", nous pouvons changer la taille de police de toutes les étiquettes de notre figure. Vous pouvez également spécifier des tailles de police différentes pour les axes x et y, voire pour les repères individuels.
Changer la taille de police pour les étiquettes de l'axe des x.
plt.xticks(fontsize=14)
Changer la taille de police pour les étiquettes de l'axe des y.
plt.yticks(fontsize=14)
Changer la taille de la police pour les deux axes
plt.xticks(fontsize=14)
plt.yticks(fontsize=14)
Fonctionnalités supplémentaires (couleur, angle de rotation,format)
En plus de modifier la taille de la police, nous pouvons également personnaliser d'autres aspects de nos étiquettes d'axe en utilisant les fonctions plt.xticks et plt.yticks. Par exemple, nous pouvons changer la couleur, l'angle de rotation et le format de nos étiquettes de repère.
Par exemple, pour changer la couleur des étiquettes des repères de l'axe des x en rouge, vous pouvez utiliser la commande plt.xticks(color='red'). Si vous souhaitez faire pivoter les étiquettes des repères de l'axe des x de 45 degrés, utilisez plt.xticks(rotation=45). Pour formater les étiquettes des repères de l'axe des y en pourcentages avec deux décimales, vous pouvez utiliser plt.yticks(format='%.2f%%').
import numpy as np
import matplotlib.pyplot as plt
fig, ax = plt.subplots(figsize=(16,4))
x_values = [1.,2.,3.,4.,5.]
x_tick_positions = [1.,2.,3.,4.,5.]
x_tick_labels = ['2019-08-01','2019-08-02','2019-08-03','2019-08-04','2019-08-05']
y_values = [2,1,2,1,2]
plt.plot(x_values,y_values)
plt.xlabel('Days', fontsize=14, labelpad=20)
plt.ylabel('Values', fontsize=14, labelpad=20)
plt.title('How to plot a time series in python ?', fontsize=14)
plt.xticks(x_tick_positions, x_tick_labels, rotation=45, fontsize=14, color='red')
plt.yticks(fontsize=14)
ax.tick_params(axis='x', which='major', pad=15)
plt.savefig('time_series_04.png', dpi=100, bbox_inches='tight')
plt.show()
Output:
En utilisant tick_params()
Matplotlib nous offre également une fonction intégrée appelée tick_params() qui nous permet de personnaliser diverses propriétés des étiquettes des repères d'axe, y compris la taille de la police. Pour changer la taille de la police des étiquettes des repères d'axe, nous devons spécifier le paramètre labelsize dans tick_params() et lui assigner la valeur de la taille de police souhaitée. Jetons un coup d'œil à un exemple :
#!/usr/bin/env python
import numpy as np
import matplotlib.pyplot as plt
import math
pi = math.pi
x_list = np.arange(-2*pi,2*pi,0.1)
y_list = [math.cos(x) for x in x_list]
fig = plt.figure(1)
plot = fig.add_subplot(111)
plt.plot(x_list,y_list)
plot.tick_params(axis='x', labelsize=14)
plt.grid()
plt.title('Change label axis font size in matplotlib')
plt.show()
Références
Liens | Site |
---|---|
matplotlib.pyplot.xticks | matplotlib.org |
matplotlib.pyplot.yticks | matplotlib.org |
How to modify the interval of the axis ticks in matplotlib ? | moonbooks.org |
tick_params | matplotlib.org |
How to plot a time series in python ? | moonbooks.org |