Non-ASCII characters in Matplotlib

I have a problem displaying non-ASCII characters in Matplotlib, these characters are rendered as small boxes instead of a proper font, it looks like (I filled these boxes with red paint to hightlight them):

Here is the image showing the problem

How do I fix it?

A related question is Accented characters in Matplotlib.

Answers:

Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.

Method 1

This problem may actually have a couple of different causes:

The default font does not include these glyphs

You may change the default font using the following (before any plotting is done!)

matplotlib.rc('font', family='Arial')

In some versions of matplotlib you’ll have to set the family:

matplotlib.rc('font', **{'sans-serif' : 'Arial',
                         'family' : 'sans-serif'})

(Note that because sans-serif contains a hyphen inside the **{} syntax, it is actually necessary.)

The first command changes the sans-serif font family to contain only one font (in my case it was Arial), the second sets the default font family to sans-serif.

Other options are included in the documentation.

You have improperly created/passed string objects into Matplotlib

Even if the font contains proper glyphs, if you forgot to use u to create Unicode constants, Matplotlib will have this behaviour:

plt.xlabel("Średnia odległość między stacjami wsparcia a modelowaną [km]")

So you need to add u:

plt.xlabel(u"Średnia odległość między stacjami wsparcia a modelowaną [km]")

Another cause is that you forgot to put a UTF-8 magic comment on top of the file (I read that this might be the source of the problem):

# -*- coding: utf-8 -*-


All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0

0 0 votes
Article Rating
Subscribe
Notify of
guest

0 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x