¿Cómo se cambia el tamaño de fuente para todos los elementos (marcas, etiquetas, título) en un diagrama matplotlib?
Sé cómo cambiar los tamaños de las etiquetas, esto se hace con:
import matplotlib
matplotlib.rc('xtick', labelsize=20)
matplotlib.rc('ytick', labelsize=20)
Pero, ¿cómo se cambia el resto?
python
matplotlib
font-size
Herman Schaaf
fuente
fuente
'family'
,'weight'
, etc.?'family'
igual'normal'
,'sans-serif'
, etc.import matplotlib.pyplot as plt
, es posible que desee señalar que también lopyplot
ha hechorc
. Puede hacerloplt.rc(...
sin tener que cambiar sus importaciones.Si eres un fanático del control como yo, es posible que desees establecer explícitamente todos los tamaños de fuente:
Tenga en cuenta que también puede establecer los tamaños llamando al
rc
método enmatplotlib
:fuente
plt.rc('axes', titlesize=BIGGER_SIZE)
plt.rc('axes', titlesize=SMALL_SIZE, labelsize=MEDIUM_SIZE)
fuente
Si desea cambiar el tamaño de fuente solo para un diagrama específico que ya se ha creado, intente esto:
fuente
ax=plt.gca()
si la trama se creó sin definir un eje.ax.get_legend().get_texts()
, porqueax.legend()
vuelve a dibujar toda la leyenda con parámetros predeterminados además de devolver el valor deax.get_legend()
.Actualización: Vea la parte inferior de la respuesta para una forma ligeramente mejor de hacerlo.
Actualización n. ° 2: también descubrí cómo cambiar las fuentes del título de la leyenda.
Actualización n. ° 3: Hay un error en Matplotlib 2.0.0 que está causando que las etiquetas de los ejes logarítmicos vuelvan a la fuente predeterminada. Debería arreglarse en 2.0.1, pero he incluido la solución en la segunda parte de la respuesta.
Esta respuesta es para cualquiera que intente cambiar todas las fuentes, incluida la leyenda, y para cualquiera que intente usar diferentes fuentes y tamaños para cada cosa. No usa rc (que no parece funcionar para mí). Es bastante engorroso, pero no pude familiarizarme con ningún otro método personalmente. Básicamente combina la respuesta de ryggyr aquí con otras respuestas en SO.
El beneficio de este método es que, al tener varios diccionarios de fuentes, puede elegir diferentes fuentes / tamaños / pesos / colores para los distintos títulos, elegir la fuente para las etiquetas de marca y elegir la fuente para la leyenda, todo de forma independiente.
ACTUALIZAR:
He desarrollado un enfoque ligeramente diferente y menos abarrotado que elimina los diccionarios de fuentes y permite cualquier fuente en su sistema, incluso las fuentes .otf. Para tener fuentes separadas para cada cosa, simplemente escriba más
font_path
y lefont_prop
gusten las variables.Esperemos que esta sea una respuesta integral
fuente
Aquí hay un enfoque totalmente diferente que funciona sorprendentemente bien para cambiar los tamaños de fuente:
¡Cambia el tamaño de la figura !
Usualmente uso un código como este:
Cuanto más pequeño sea el tamaño de la figura, mayor será la fuente en relación con el gráfico . Esto también aumenta los marcadores. Tenga en cuenta que también configuro el
dpi
o punto por pulgada. Aprendí esto al publicar el foro AMTA (American Modeling Teacher of America). Ejemplo del código anterior:fuente
bbox_inches
argumentofig.savefig('Basic.png', bbox_inches="tight")
Utilizar
plt.tick_params(labelsize=14)
fuente
Se puede utilizar
plt.rcParams["font.size"]
para el ajustefont_size
enmatplotlib
y también se puede utilizarplt.rcParams["font.family"]
para establecerfont_family
enmatplotlib
. Prueba este ejemplo:fuente
Esto es lo que generalmente uso en Jupyter Notebook:
fuente
Basado en lo anterior:
fuente
Esta es una extensión de la respuesta de Marius Retegan . Puede crear un archivo JSON separado con todas sus modificaciones y luego cargarlo con rcParams.update. Los cambios solo se aplicarán al script actual. Entonces
y guarde este 'archivo_ejemplo.json' en la misma carpeta.
fuente
Estoy totalmente de acuerdo con el profesor Huster en que la forma más sencilla de proceder es cambiar el tamaño de la figura, lo que permite mantener las fuentes predeterminadas. Simplemente tuve que complementar esto con una opción bbox_inches al guardar la figura como un pdf porque las etiquetas del eje se cortaron.
fuente