python install - Matplotlib faire des étiquettes de tiques taille de la police plus petite





documentation help (9)


Pour spécifier la taille et la rotation de la police en même temps, essayez ceci:

plt.xticks(fontsize=14, rotation=90)

Dans une figure matplotlib, comment puis-je rendre la taille de la police pour les étiquettes de tick en utilisant ax1.set_xticklabels() plus petit?

En outre, comment peut-on le faire passer de l'horizontale à la verticale?




Veuillez noter que les nouvelles versions de MPL disposent d'un raccourci pour cette tâche. Un exemple est montré dans l'autre réponse à cette question: https://.com/a/11386056/42346

Le code ci-dessous est à titre illustratif et ne peut pas nécessairement être optimisé.

import matplotlib.pyplot as plt
import numpy as np

def xticklabels_example():
    fig = plt.figure() 

    x = np.arange(20)
    y1 = np.cos(x)
    y2 = (x**2)
    y3 = (x**3)
    yn = (y1,y2,y3)
    COLORS = ('b','g','k')

    for i,y in enumerate(yn):
        ax = fig.add_subplot(len(yn),1,i+1)

        ax.plot(x, y, ls='solid', color=COLORS[i]) 

        if i != len(yn) - 1:
            # all but last 
            ax.set_xticklabels( () )
        else:
            for tick in ax.xaxis.get_major_ticks():
                tick.label.set_fontsize(14) 
                # specify integer or one of preset strings, e.g.
                #tick.label.set_fontsize('x-small') 
                tick.label.set_rotation('vertical')

    fig.suptitle('Matplotlib xticklabels Example')
    plt.show()

if __name__ == '__main__':
    xticklabels_example()




Dans les versions actuelles de Matplotlib, vous pouvez faire axis.set_xticklabels(labels, fontsize='small') .




Une autre alternative

J'ai deux parcelles côte à côte et j'aimerais ajuster les étiquettes de tiques séparément.

Les solutions ci-dessus étaient proches mais ils ne fonctionnaient pas pour moi. J'ai trouvé ma solution sur cette page matplotlib.

ax.xaxis.set_tick_params(labelsize=20)

Cela a fait l'affaire et était droit au but. Pour mon cas d'utilisation, c'était l'intrigue sur la droite qui devait être ajustée. Pour l'intrigue à gauche depuis la création de nouvelles étiquettes de graduation, j'ai pu ajuster la police dans le même processus que la définition des étiquettes.

c'est à dire

ax1.set_xticklabels(ax1_x, fontsize=15)
ax1.set_yticklabels(ax1_y, fontsize=15)

donc j'ai utilisé pour la bonne intrigue,

ax2.xaxis.set_tick_params(labelsize=24)
ax2.yaxis.set_tick_params(labelsize=24)

Un minnor subtilement ... je sais ... mais j'espère que ça aide quelqu'un :)

Points bonus si quelqu'un sait comment ajuster la taille de la police de l'étiquette de l'ordre de grandeur.




plt.tick_params (axis = 'both', qui = 'minor', labelsize = 12)




Vous pouvez également modifier les paramètres d'affichage des étiquettes comme fontsize avec une ligne comme celle-ci:

zed = [tick.label.set_fontsize(14) for tick in ax.yaxis.get_major_ticks()]



Alternativement, vous pouvez simplement faire:

import matplotlib as mpl
label_size = 8
mpl.rcParams['xtick.labelsize'] = label_size 



Il y a un moyen plus simple en fait. Je viens de trouver:

import matplotlib.pyplot as plt
# We prepare the plot  
fig = plt.figure(1)
# We define a fake subplot that is in fact only the plot.  
plot = fig.add_subplot(111)

# We change the fontsize of minor ticks label 
plot.tick_params(axis='both', which='major', labelsize=10)
plot.tick_params(axis='both', which='minor', labelsize=8)

Cela ne répond qu'à la taille de l' label de votre question.




Si vous voulez changer la taille de la police pour juste un graphique spécifique qui a déjà été créé, essayez ceci:

import matplotlib.pyplot as plt

ax = plt.subplot(111, xlabel='x', ylabel='y', title='title')
for item in ([ax.title, ax.xaxis.label, ax.yaxis.label] +
             ax.get_xticklabels() + ax.get_yticklabels()):
    item.set_fontsize(20)




python matplotlib