matplotlib:在文本框中使用LaTeX时覆盖字符串中的下划线

时间:2015-03-31 15:38:31

标签: python matplotlib latex

我需要在绘图的文本框中编写,并在LaTeX环境中编写(因为我还需要编写一些数学代码),包含下划线的变量的名称。

问题是LaTeX将变量名称中的下划线解释为子索引命令,并且变量名称失真。见(MWE如下):

enter image description here

其中变量的名称为m_out

如何在没有LaTeX的情况下编写包含下划线的字符串,将其解释为subindex命令?

在纯粹的LaTeX中,我可以使用\textunderscore命令来编写:

N = m \textunderscore out \pm 0.2

正确产生:

enter image description here

但这似乎无法在这里发挥作用。


MWE

import matplotlib.pyplot as plt
import matplotlib.offsetbox as offsetbox
import random

# Generate random data.
x = [random.random() for i in xrange(10)]
y = [random.random() for i in xrange(10)]

# Define string with underscore.
name = 'm_out'

# Create plot.
fig = plt.figure()
ax = plt.subplot()

# Add text box
text = r'$N={}\pm0.2$'.format(name)
ob = offsetbox.AnchoredText(text, loc=1, prop=dict(size=12))
ax.add_artist(ob)
plt.scatter(x, y)

# Save plot to file.
fig.tight_layout()
plt.savefig('out.png')

1 个答案:

答案 0 :(得分:2)

一个简单的逃脱就是诀窍:

name = 'm\_out'

matplotlib-generated image