rcparams fontsize font family python matplotlib fonts

python - fontsize - rcparams font



¿Cómo usar una fuente(aleatoria)*.otf o*.ttf en matplotlib? (2)

En * nix, puede usar todas las fuentes de su sistema habilitando el backend fontconfig de matplotlib.

Sin embargo, matplotlib no habla realmente con las bibliotecas de fontconfig, sino que emula su comportamiento ejecutando las utilidades de fontconfig cli.

Por lo tanto, deshabilitar la caché de fontconfig matplotlib para que descubra nuevas fuentes puede salvar vidas (la existencia de esta caché es una prueba directa de la falta de integración completa de fontconfig).

¿Cómo puedo usar cualquier tipo de fuente en mi biblioteca de fuentes en mi computadora (por ejemplo, *otf o *ttf ) en todas mis figuras matplotlib ?


Vea el ejemplo aquí: http://matplotlib.sourceforge.net/examples/api/font_file.html

En general, harías algo como esto si quieres usar un archivo .ttf específico. (¡Tenga en cuenta que apuntar a un archivo de fuente específico suele ser una mala idea!)

import matplotlib.font_manager as fm import matplotlib.pyplot as plt fig, ax = plt.subplots() ax.plot(range(10)) prop = fm.FontProperties(fname=''/usr/share/fonts/truetype/groovygh.ttf'') ax.set_title(''This is some random font'', fontproperties=prop, size=32) plt.show()

Por lo general, solo debe señalar el nombre de la fuente y dejar que matplotlib se preocupe por encontrar el archivo específico. P.ej

import matplotlib.pyplot as plt plt.plot(range(10)) plt.title(''This is some random font'', family=''GroovyGhosties'', size=32) plt.show()

Si desea que matplotlib siempre use una fuente en particular, entonces personalice su archivo .matplotlibrc . ( font.family es lo que desea establecer. Tenga en cuenta que debe especificar el nombre de la fuente, no la ruta a un archivo .ttf específico.)

Como ejemplo de hacer esto de forma dinámica (es decir, sin configurar un archivo .matplotlibrc específico):

import matplotlib as mpl mpl.rcParams[''font.family''] = ''GroovyGhosties'' import matplotlib.pyplot as plt plt.plot(range(10)) plt.title(''Everything is crazy!!!'', size=32) plt.show()