Getting xkcd plots using matplotlib

Using ubuntu 16.04 and python 3, with matplotlib 2.0.0 installed the following fixes the problem for me.

  1. Install Comic sans: sudo apt install fonts-humor-sans
  2. Remove matplotlib cache: rm ~/.cache/matplotlib -r

Make sure you have fonts-humor-sans installed.

In Ubuntu/Debian, you can install them with (from the command-line):

$ sudo apt install python3-xkcd fonts-humor-sans

Then the best option (instead of deleting the matplotlib cache) is to rebuild the font manager (from within the Python interpreter, script or Jupyter notebook):

import matplotlib
matplotlib.font_manager._rebuild()


To get it working, you need

  • matplotlib 1.3.1 (it won't work with matplotlib 1.3.0 or earlier)
    • sudo pip install matplotlib --upgrade
  • font Humor Sans
    • download from here or here, install (on OS X you open it and click Install)
  • remove the matplotlib font cache (as suggested by DanHickstein in matplotlib/issues/2269)
    • rm ~/.matplotlib/fontList.cache

Now, execute the code and it should work.

You do not need to change backend to TkAgg, as some people suggest. For me it works perfectly fine on 'module://IPython.kernel.zmq.pylab.backend_inline' (you can check it by plt.get_backend()).

(I had the same problem and I've solved it, at least on OS X 10.8.5, with matplotlib 1.3.1 and IPython 2.0.0; removing font cache was necessary to get the font running.)

Tags:

Matplotlib