python - legends - plot title font size matplotlib
Personajes acentuados en matplotlib (4)
Por supuesto. Puedes usar TeX:
from matplotlib import rcParams
rcParams[''text.usetex''] = True
ax = ... # Axes object
ax.set_yticklabels([''$/'{e}$'', ''$/tilde{a}$'', ''$/hat{a}$''])
¿Hay alguna forma de hacer que Matplotlib genere caracteres acentuados (é, ã, â, etc.)?
Por ejemplo, estoy tratando de usar caracteres acentuados en set_yticklabels()
y Matplotlib muestra cuadrados, y cuando uso unicode()
representa los caracteres incorrectos.
¿Hay alguna manera de hacer que esto funcione?
Resulta que puedes usar u "éã", pero primero debes configurar la codificación del archivo:
# Using the magic encoding
# -*- coding: utf-8 -*-
Después de eso Matplotlib rinde correctamente
u"é"
También aprendí que puedes usar
import matplotlib.font_manager as fm
fp1=fm.FontProperties(fname="/path/to/somefont.ttf")
ax.title("é",fontproperties=fp1)
en caso de que necesite renderizar caracteres que Matplotlib no tiene.
Prefije las cadenas con u
para decirle a Python que son cadenas Unicode:
ax.set_yticklabels([u''é'', u''ã'', u''â''])
También tuve este problema específicamente cuando intentaba usar la función de anotación. Aquí estaba mi mensaje de error:
ValueError: matplotlib display text must have all code points < 128 or use Unicode strings
Y aquí está lo que usé para resolver esto:
"accented string i.e. sāo paulo".decode(''utf-8'')
desde matplotlib import rc
rcParams[''text.latex.unicode'']=True