pyplot legends font example acentos python unicode matplotlib

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