Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Force matplotlibrc to use Arial (path of font)

I have Arial font installed in my system:

/usr/share/fonts/truetype/msttcorefonts/Arial_Bold_Italic.ttf
/usr/share/fonts/truetype/msttcorefonts/arialbi.ttf
/usr/share/fonts/truetype/msttcorefonts/Arial_Bold.ttf
/usr/share/fonts/truetype/msttcorefonts/arial.ttf
/usr/share/fonts/truetype/msttcorefonts/ariali.ttf
/usr/share/fonts/truetype/msttcorefonts/arialbd.ttf
/usr/share/fonts/truetype/msttcorefonts/Arial.ttf
/usr/share/fonts/truetype/msttcorefonts/Arial_Italic.ttf
/usr/share/fonts/truetype/msttcorefonts/Arial_Black.ttf
/usr/share/xbmc/media/Fonts/arial.ttf
/usr/local/share/texmf/fonts/tfm/urw/arial
/usr/local/share/texmf/fonts/afm/urw/arial
/usr/local/share/texmf/fonts/vf/urw/arial
/usr/local/share/texmf/fonts/type1/urw/arial

I have changed inside my matplotlibrc including the line:

font.sans-serif      : Arial

If I check inside IPython:

import matplotlib.pyplot as plt
plt.plot([1,2,3,4,5,], '*')
t = plt.ylabel(r'1, 2, 3, 8, 9 6 11 Testing Label')
print(t.get_fontname())

The output is:

myhome/local/lib/python2.7/site-packages/matplotlib-1.4.2-py2.7-linux-
x86_64.egg/matplotlib/font_manager.py:1279: UserWarning: findfont: Font
family [u'sans-serif'] not found. Falling back to Bitstream Vera Sans
(prop.get_family(), self.defaultFamily[fontext]))

Bitstream Vera Sans

How can I change this behavior and use Arial fonts for all of my plots? Why Arial font is not loaded?

It is interesting, that if I use Seaborn, it returns Liberation Sans where the first font (inside internal font list) is Arial and the second is Liberation Sans.

like image 542
arnaldo Avatar asked Jan 20 '15 19:01

arnaldo


1 Answers

As suggested by @BenjaminRoot to delete the font cache on ~/.matplotlib

In fact in my Debian system, with python stuff inside virtualenv ecosystem, such folder was located at ~/.cache/matplotlib/ I have deleted all files and folder and the cache was regenerated again. Now it works! =]

like image 75
arnaldo Avatar answered Nov 03 '22 01:11

arnaldo