121 votos

Cómo cambiar el tamaño de la fuente en un gráfico matplotlib

¿Cómo se cambia el tamaño de la letra de todos los elementos (garrapatas, etiquetas, título) en una trama matplotlib?

Sé cómo cambiar el tamaño de la etiqueta de la garrapata, esto se hace con:

import matplotlib 
matplotlib.rc('xtick', labelsize=20) 
matplotlib.rc('ytick', labelsize=20) 

¿Pero cómo se cambia el resto?

441voto

Pedro M Duarte Puntos 19845

Si eres un fanático del control como yo, es posible que quieras establecer explícitamente todos los tamaños de las fuentes:

import matplotlib.pyplot as plt

SMALL_SIZE = 8
MEDIUM_SIZE = 10
BIGGER_SIZE = 12

plt.rc('font', size=SMALL_SIZE)          # controls default text sizes
plt.rc('axes', titlesize=SMALL_SIZE)     # fontsize of the axes title
plt.rc('axes', labelsize=MEDIUM_SIZE)    # fontsize of the x and y labels
plt.rc('xtick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('ytick', labelsize=SMALL_SIZE)    # fontsize of the tick labels
plt.rc('legend', fontsize=SMALL_SIZE)    # legend fontsize
plt.rc('figure', titlesize=BIGGER_SIZE)  # fontsize of the figure title

Tenga en cuenta que también puede establecer los tamaños llamando al rc método en matplotlib :

import matplotlib

SMALL_SIZE = 8
matplotlib.rc('font', size=SMALL_SIZE)
matplotlib.rc('axes', titlesize=SMALL_SIZE)

# and so on ...

129voto

Herman Schaaf Puntos 9938

Desde el documentación de matplotlib ,

font = {'family' : 'normal',
        'weight' : 'bold',
        'size'   : 22}

matplotlib.rc('font', **font)

Esto establece la fuente de todos los elementos a la fuente especificada por el objeto kwargs, font .

92voto

Marius Retegan Puntos 818
matplotlib.rcParams.update({'font.size': 22})

63voto

ryggyr Puntos 676

Si quieres cambiar el tamaño de la fuente sólo para una trama específica que ya ha sido creada, prueba esto:

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)

49voto

Prof Huster Puntos 721

Aquí hay una totalmente diferentes que funciona sorprendentemente bien para cambiar los tamaños de las fuentes:

Cambiar el tamaño de la figura ¡!

Suelo utilizar un código como este:

import matplotlib.pyplot as plt
import numpy as np
fig = plt.figure(figsize=(4,3))
ax = fig.add_subplot(111)
x = np.linspace(0,6.28,21)
ax.plot(x, np.sin(x), '-^', label="1 Hz")
ax.set_title("Oscillator Output")
ax.set_xlabel("Time (s)")
ax.set_ylabel("Output (V)")
ax.grid(True)
ax.legend(loc=1)
fig.savefig('Basic.png', dpi=300)

El más pequeño que se hace el tamaño de la figura, el más grande el tipo de letra es en relación con la parcela . Esto también aumenta la escala de los marcadores. Obsérvese que también he ajustado el dpi o punto por pulgada. Lo aprendí de una publicación en el foro de la AMTA (American Modeling Teacher of America). Ejemplo del código anterior: enter image description here

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X