python graficos - Matplotlib hace que las etiquetas de tick tamaño de letra más pequeño




2d color (9)

Tenga en cuenta que las versiones más recientes de MPL tienen un acceso directo para esta tarea. Un ejemplo se muestra en la otra respuesta a esta pregunta: https://stackoverflow.com/a/11386056/42346

El código a continuación es para propósitos ilustrativos y no necesariamente puede ser optimizado.

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()

En una figura de matplotlib, ¿cómo puedo hacer que el tamaño de fuente para las etiquetas de tick usando ax1.set_xticklabels() más pequeño?

Además, ¿cómo se puede rotar de horizontal a vertical?


Alternativamente, puedes simplemente hacer:

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

Hay una forma más sencilla en realidad. Acabo de encontrar:

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)

Sin embargo, esto solo responde al tamaño de la parte de la label de su pregunta.


Para fuentes más pequeñas, yo uso

ax1.set_xticklabels(xticklabels, fontsize=7)

¡y funciona!


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


También puede cambiar los parámetros de visualización de etiquetas como tamaño de fuente con una línea como esta:

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

En las versiones actuales de Matplotlib, puedes hacer axis.set_xticklabels(labels, fontsize='small') .


Para especificar el tamaño de la fuente y la rotación al mismo tiempo, intente esto:

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

También puede hacer esto globalmente a través de un diccionario rcParams:

import matplotlib.pylab as pylab
params = {'legend.fontsize': 'x-large',
          'figure.figsize': (15, 5),
         'axes.labelsize': 'x-large',
         'axes.titlesize':'x-large',
         'xtick.labelsize':'x-large',
         'ytick.labelsize':'x-large'}
pylab.rcParams.update(params)




python matplotlib