我想用latex computer modern字体为我的绘图创建标签。但是,说服matplotlib使用latex字体的唯一方法是插入如下内容:
title(r'$\mathrm{test}$')
这当然很荒谬,我告诉latex启动数学模式,然后临时退出数学模式来写实际的字符串。如何确保所有标签都以latex呈现,而不仅仅是公式?我如何确保这将是默认行为?
下面是一个最小的工作示例:
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()
这将产生以下结果:
这里的x轴是我想要的标签的显示方式。如何确保所有标签都是这样显示的,而不必切换到数学模式并再次返回?
发布于 2013-07-31 09:59:45
默认的Latex字体称为Computer Modern
from matplotlib import rc
import matplotlib.pylab as plt
rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
rc('text', usetex=True)
x = plt.linspace(0,5)
plt.plot(x,plt.sin(x))
plt.ylabel(r"This is $\sin(x)$", size=20)
plt.show()
发布于 2014-04-07 01:22:31
我在Mac上使用matplotlib1.3.1,在matplotlibrc
works中添加以下代码行
text.usetex : True
font.family : serif
font.serif : cm
使用=
通向UserWarning: Illegal line
发布于 2013-08-14 20:02:05
默认情况下,可以通过更改matplotlibrc
文件中的几行代码来启用标记的答案:
text.usetex = True
font.family = serif
font.serif = cm
https://stackoverflow.com/questions/17958485
复制相似问题