I want to create labels to my plots with the latex computer modern font. However, the only way to persuade matplotlib to use the latex font is by inserting something like:
title(r'$\mathrm{test}$')
This is of course ridiculous, I tell latex to start math mode, and then exit math mode temporary to write the actual string. How do I make sure that all labels are rendered in latex, instead of just the formulas? And how do I make sure that this will be the default behaviour?
A minimal working example is as follows:
import matplotlib as mpl
import matplotlib.pyplot as plt
import numpy as np
# use latex for font rendering
mpl.rcParams['text.usetex'] = True
x = np.linspace(-50,50,100)
y = np.sin(x)**2/x
plt.plot(x,y)
plt.xlabel(r'$\mathrm{xlabel\;with\;\LaTeX\;font}$')
plt.ylabel(r'Not a latex font')
plt.show()
This gives the following result:
Here the x axis is how I want the labels to appear. How do I make sure that all labels appear like this without having to go to math mode and back again?
usetex
enables LaTeX for everything, and actually I'm exactly looking for the behavior you describe (LaTeX only for$...$
). Since all answers only mention howfont.family
must be set to achieve your case, it would be great if you could specify the alternative that achieves these non-LaTeX fonts... – bluenote10