Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Accented characters in Matplotlib

Tags:

Is there a way to get Matplotlib to render accented chars (é,ã,â,etc)?

For instance, I'm trying to use accented characters on set_yticklabels() and Matplotlib renders squares instead, and when I use unicode() it renders the wrong characters.

Is there a way to make this work?

It turns out you can use u"éã", but first you have to set the file encoding:

# Using the magic encoding # -*- coding: utf-8 -*- 

After that Matplotlib correctly renders

u"é" 

I also learned that you can use

import matplotlib.font_manager as fm fp1=fm.FontProperties(fname="/path/to/somefont.ttf") ax.title("é",fontproperties=fp1) 

in case you need to render a characters that Matplotlib does not have.

like image 612
OldJim Avatar asked Mar 09 '10 04:03

OldJim


People also ask

How do you add a tilde in Python?

The general formula to calculate the tilde operation ~i is ~i=-i-1 .

How do I write math in Matplotlib?

You can use a subset of TeX markup in any Matplotlib text string by placing it inside a pair of dollar signs ($). Note that you do not need to have TeX installed, since Matplotlib ships its own TeX expression parser, layout engine, and fonts.


1 Answers

Prefix the strings with u to tell Python that they are Unicode strings:

ax.set_yticklabels([u'é', u'ã', u'â']) 
like image 107
ptomato Avatar answered Oct 13 '22 00:10

ptomato