matplotlib中的Latex \ Box

时间:2014-01-03 13:40:50

标签: matplotlib latex

我正在尝试用带有标签的matplotlib制作图表,其中包括Latex命令$ \ Box $。这引发了我一堆错误,有人知道怎么做吗?我必须以某种方式包括'amssmyb'吗?

代码行看起来像这样

ax.loglog( w, PSD1, 'k:', label='$r_{J} = 100 \ M \Omega / \Box $')

2 个答案:

答案 0 :(得分:1)

您走在正确的轨道上:您需要包含amssymb套餐。

首先,您需要打开text.usetex(指示matplotlib使用系统乳胶编译器),然后将amssymb包添加到text.latex.preamble

  1. 如果您只需要这样做,可以在python脚本中添加以下内容:

    from matplotlib import rcParams
    rcParams['text.usetex'] = True
    rcParams['text.latex.preamble'] = [r'\usepackage{amssymb}']
    
  2. 如果您需要更频繁地编辑matplotlibrc文件,请执行以下操作:

    text.usetex         : True
    text.latex.preamble :  \usepackage{amssymb}
    

    两个条目都应该已经在文件中,只需取消注释并按上面的方式进行编辑


  3. 最后一件事,可以帮助你避免许多头痛:
    当您在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时,我的乳胶编译器都会将错误视为警告......