outside example python size matplotlib legend

python - example - Cómo cambiar el tamaño de la leyenda con matplotlib.pyplot



matplotlib legend size (6)

En mi instalación, FontProperties solo cambia el tamaño del texto, pero sigue siendo demasiado grande y espaciado. Encontré un parámetro en pyplot.rcParams : legend.labelspacing , que supongo que está configurado a una fracción del tamaño de fuente. Lo he cambiado con

pyplot.rcParams.update({''legend.labelspacing'':0.25})

No estoy seguro de cómo especificarlo a la función pyplot.legend - pasar

prop={''labelspacing'':0.25}

o

prop={''legend.labelspacing'':0.25}

Vuelve con un error.

Pregunta simple aquí: estoy tratando de obtener el tamaño de mi leyenda usando matplotlib.pyplot para ser más pequeño (es decir, el texto para ser más pequeño). El código que estoy usando va algo como esto:

plot.figure() plot.scatter(k, sum_cf, color=''black'', label=''Sum of Cause Fractions'') plot.scatter(k, data[:, 0], color=''b'', label=''Dis 1: cf = .6, var = .2'') plot.scatter(k, data[:, 1], color=''r'', label=''Dis 2: cf = .2, var = .1'') plot.scatter(k, data[:, 2], color=''g'', label=''Dis 3: cf = .1, var = .01'') plot.legend(loc=2)


Esto deberia hacer

import pylab as plot params = {''legend.fontsize'': 20, ''legend.handlelength'': 2} plot.rcParams.update(params)

Luego haz la trama después.

Hay un montón de otros rcParams, también se pueden establecer en el archivo matplotlibrc.

También es de suponer que puede cambiarlo pasando una instancia de matplotlib.font_manager.FontProperties pero no sé cómo hacerlo. -> ver la respuesta de Yann.


Hay múltiples configuraciones para ajustar el tamaño de la leyenda. Los dos que me parecen más útiles son:

  • labelspacing: que establece el espaciado entre las entradas de etiquetas en múltiplos del tamaño de fuente. Por ejemplo, con una fuente de 10 puntos, la legend(..., labelspacing=0.2) reducirá el espacio entre las entradas a 2 puntos. El valor predeterminado en mi instalación es de aproximadamente 0,5.
  • prop: que permite el control total del tamaño de la fuente, etc. Puede establecer una fuente de 8 puntos usando la legend(..., prop={''size'':8}) . El valor predeterminado en mi instalación es de unos 14 puntos.

Además, la documentación de la leyenda enumera una serie de otros parámetros de relleno y espaciado que incluyen: borderpad , handletextpad , borderaxespad , columnspacing y columnspacing . Todos estos siguen la misma forma que el espacio de etiquetas y el área también en múltiplos de tamaño de fuente.

Estos valores también se pueden establecer como valores predeterminados para todas las figuras usando el archivo matplotlibrc .


Puede establecer un tamaño de fuente individual para la leyenda ajustando la palabra clave de prop .

plot.legend(loc=2, prop={''size'': 6})

Esto toma un diccionario de palabras clave correspondientes a matplotlib.font_manager.FontProperties propiedades matplotlib.font_manager.FontProperties . Vea la documentación para la leyenda :

Argumentos de palabras clave:

prop: [ None | FontProperties | dict ] A matplotlib.font_manager.FontProperties instance. If prop is a dictionary, a new instance will be created with prop. If None, use rc settings.

También es posible, a partir de la versión 1.2.1 , usar la palabra clave fontsize .


También hay algunos tamaños de fontsizes nombrados, además del tamaño en puntos:

xx-small x-small small medium large x-large xx-large

Uso:

pyplot.legend(loc=2, fontsize = ''x-small'')


utilizando import matplotlib.pyplot as plt

Método 1: especifique el tamaño de fuente al llamar a la leyenda (repetitiva)

plt.legend(fontsize=20) # using a size in points plt.legend(fontsize="x-large") # using a named size

Con este método, puede establecer el tamaño de fuente para cada leyenda en la creación (lo que le permite tener múltiples leyendas con diferentes tamaños de fuente). Sin embargo, tendrá que escribir todo manualmente cada vez que cree una leyenda.

(Nota: @ Mathias711 enumeró los tipos de letra con nombre disponibles en su respuesta)

Método 2: especifique el tamaño de fuente en rcParams (conveniente)

plt.rc(''legend'',fontsize=20) # using a size in points plt.rc(''legend'',fontsize=''medium'') # using a named size

Con este método, configura el tamaño de fuente de leyenda predeterminado, y todas las leyendas lo usarán automáticamente a menos que especifique lo contrario con el método 1. Esto significa que puede configurar el tamaño de fuente de su leyenda al comienzo de su código, y no se preocupe por configurarlo para cada leyenda individual .

Si usa un tamaño con nombre, por ejemplo, ''medium'' , el texto de la leyenda se escalará con el font.size de rcParams global en rcParams . Para cambiar font.size use plt.rc(font.size=''medium'')