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