我正在尝试用带有标签的matplotlib制作图表,其中包括Latex命令$ \ Box $。这引发了我一堆错误,有人知道怎么做吗?我必须以某种方式包括'amssmyb'吗?
代码行看起来像这样
ax.loglog( w, PSD1, 'k:', label='$r_{J} = 100 \ M \Omega / \Box $')
答案 0 :(得分:1)
您走在正确的轨道上:您需要包含amssymb
套餐。
首先,您需要打开text.usetex
(指示matplotlib使用系统乳胶编译器),然后将amssymb
包添加到text.latex.preamble
。
如果您只需要这样做,可以在python脚本中添加以下内容:
from matplotlib import rcParams
rcParams['text.usetex'] = True
rcParams['text.latex.preamble'] = [r'\usepackage{amssymb}']
如果您需要更频繁地编辑matplotlibrc
文件,请执行以下操作:
text.usetex : True
text.latex.preamble : \usepackage{amssymb}
两个条目都应该已经在文件中,只需取消注释并按上面的方式进行编辑
最后一件事,可以帮助你避免许多头痛:
当您在matplotlib
中使用包含乳胶代码的字符串时(通常在python中使用更多),请使用原始字符串,这样您就不必记住转义特殊字符,例如/
。当我在序言中添加amssymb
时,我在第一个例子中使用了一个。有关它们的一些信息,请阅读this piece of doc
答案 1 :(得分:0)
@FrancescoMontesano:我没有足够的声誉来发布以下内容作为你的答案的评论,所以我会在这里作为答案发布。
就我而言,@ FrancescoMontesano的建议不起作用,我不得不使用:
from matplotlib import rcParams
rcParams['text.usetex'] = True
rcParams['text.latex.preamble'] = '\usepackage{txfonts}'
不确定为什么这对我的配置起作用,但也许它与我的matplotlib版本有关?
Matplot lib Version: 1.3.1
python 2.7.6
Linux 3.13.0-24
我注意到一个恼人的细节:每当定义text.latex.preamble时,我的乳胶编译器都会将错误视为警告......