# Sans-serif math with latex in matplotlib

### Question

The following script:

``````import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as mpl

mpl.rc('font', family='sans-serif')
mpl.rc('text', usetex=True)

fig = mpl.figure()
ax.text(0.2,0.5,r"Math font: \$451^\circ\$")
ax.text(0.2,0.7,r"Normal font (except for degree symbol): 451\$^\circ\$")

fig.savefig('test.png')
``````

is an attempt to use a sans-serif font in matplotlib with LaTeX. The issue is that the math font is still a serif font (as indicated by the axis numbers, and as demonstrated by the labels in the center). Is there a way to set the math font to also be sans-serif?

1
21
3/29/2010 12:39:38 PM

I always have `text.usetex = True` in my matplotlibrc file. In addition to that, I use this as well:

``````mpl.rcParams['text.latex.preamble'] = [
r'\usepackage{siunitx}',   # i need upright \micro symbols, but you need...
r'\sisetup{detect-all}',   # ...this to force siunitx to actually use your fonts
r'\usepackage{helvet}',    # set the normal font here
r'\usepackage{sansmath}',  # load up the sansmath so that math -> helvet
r'\sansmath'               # <- tricky! -- gotta actually tell tex to use!
]
``````

Hope that helps.

25
4/5/2014 8:11:50 PM