Comment puis-je faire apparaître les tics mineurs uniquement sur l'axe des y sur un tracé linéaire vs linéaire ?
Lorsque j'utilise la fonction minor_ticks_on
pour activer les tics mineurs, ils apparaissent sur les axes x et y.
Comment puis-je faire apparaître les tics mineurs uniquement sur l'axe des y sur un tracé linéaire vs linéaire ?
Lorsque j'utilise la fonction minor_ticks_on
pour activer les tics mineurs, ils apparaissent sur les axes x et y.
Voici un autre moyen que j'ai trouvé dans le documentation de matplotlib :
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.show()
Ceci placera des tics mineurs sur uniquement l'axe des y, puisque les tics mineurs sont désactivés par défaut.
Pour clarifier la procédure de la réponse de @emad, les étapes pour afficher les tics mineurs aux emplacements par défaut sont les suivantes :
Un exemple minimal :
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
plt.plot([1,2])
# Currently, there are no minor ticks,
# so trying to make them visible would have no effect
ax.yaxis.get_ticklocs(minor=True) # []
# Initialize minor ticks
ax.minorticks_on()
# Now minor ticks exist and are turned on for both axes
# Turn off x-axis minor ticks
ax.xaxis.set_tick_params(which='minor', bottom=False)
Alternativement, nous pouvons obtenir des tics mineurs aux emplacements par défaut en utilisant AutoMinorLocator
:
import matplotlib.pyplot as plt
import matplotlib.ticker as tck
fig, ax = plt.subplots()
plt.plot([1,2])
ax.yaxis.set_minor_locator(tck.AutoMinorLocator())
Dans tous les cas, le tracé résultant présente des tics mineurs sur l'axe des y uniquement.
De même, si vous ne souhaitez que des tics mineurs sur l'axe des y, plutôt que sur les côtés gauche et droit du graphique, vous pouvez suivre les instructions suivantes plt.axes().yaxis.set_minor_locator(ml)
con plt.axes().yaxis.set_tick_params(which='minor', right = 'off')
comme ça :
import numpy as np
from matplotlib import pyplot as plt
from matplotlib.ticker import MultipleLocator
a = np.arange(100)
ml = MultipleLocator(5)
plt.plot(a)
plt.axes().yaxis.set_minor_locator(ml)
plt.axes().yaxis.set_tick_params(which='minor', right = 'off')
plt.show()
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.