I\'m trying to change matplotlib\'s default font to Helvetica Neue. On my Mac with EPD/Canopy everything worked fine some time ago.
Trying to do the same on ubuntu
The font cache shows up in a different place for me (.cache/matplotlib/fontList.cache). And before I actually had three of them in different places somehow :/
maybe try searching for it in your home directory:
find ~/ -name fontList.cache -exec rm {} \;
This won't change you font permanently, but it's worth a try
matplotlib.rc('font', family='sans-serif')
matplotlib.rc('font', serif='Helvetica Neue')
matplotlib.rc('text', usetex='false')
matplotlib.rcParams.update({'font.size': 22})
Ubuntu 14.04 LTS
Upload the fonts
sudo cp NotoSansKR-Regular.otf /usr/share/fonts/
Update the cache of font
sudo fc-cache -fv
You can check the font list
fc-list
Restart ipython, etc. Check the font list
[f.name for f in matplotlib.font_manager.fontManager.ttflist]
Take a your font name
import matplotlib.pyplot as plt
from matplotlib import rcParams
rcParams['font.family'] = 'Noto Sans Korean'
Draw
plt.title(u'한글 제목')
plt.xlabel(u'한글 축 이름')
plt.plot(range(5))
Kim already introduced dynamic solution works perfectly, and here's two other ways doing the same in static.
First, you may put a line to rc file for matplotlib . Refer to this page for more information about locating the file and detailed settings.
font.family : NanumGothic
Second, if you are working with ipython, you can put some commands for font setting to a configuration file for the interactive shell. Find the file named ipython_config.py which usually located under ~/.ipython/somewhere. Then add two more lines to the list, c.InteractiveShellApp.exec_lines .
c.InteractiveShellApp.exec_lines = [
"import matplotlib as mpl",
"mpl.rcParams['font.family'] = 'NanumGothic'"
]
Former always works whatever environment you run your shell script on as it loads the font when your script imports matplotlib .