使用乳胶" eqnarray" -command在matplotlib中减少等号之间的间距?

时间:2016-08-18 14:27:01

标签: python matplotlib latex spacing

我想在matplotlib中对齐等号。因此,我在matplotlib中使用了eqnarray环境:

import matplotlib.pyplot as plt
from matplotlib import rc

rc('text',   usetex=True)
rc('font',   size      = 7)

fig = plt.figure(figsize=(3,2))
ax  = fig.add_subplot(111)    

ax.text(0.5,0.5 ,r'\begin{eqnarray*}' +\
             r'M                &=& 0.95' + '\\\\' +\
             r'\xi              &=& 0.5' + '\\\\' +\
             r'\mu              &=& 0.1' + '\\\\' +\
             r'a/b              &=& 0' + '\\\\' +\
             r'\delta_{99}/L    &=& 0' +\
             r'\end{eqnarray*}',
             verticalalignment='center',
             horizontalalignment='center')

plt.savefig('output.pdf')
plt.show()

结果如下: enter image description here

如何减少等号附近的间距?

1 个答案:

答案 0 :(得分:1)

您需要加载amsmath包才能使用' align'。 “eqnarray”中的空白区问题'这里讨论:https://github.com/matplotlib/matplotlib/issues/4954。至少在matplotlib 1.2.1中我的问题没有得到解决。

这应该给出相同的结果:

#!/usr/bin/python
import matplotlib.pyplot as plt

preamble = {
    'text.usetex' : True,
    'font.size'   : 7,
    'text.latex.preamble': [
        r'\usepackage{amsmath}',
        ],
    }
plt.rcParams.update(preamble)

fig = plt.figure(figsize=(3.,2.))
ax  = fig.add_subplot(111)

ax.text(0.5,0.5 ,r'\begin{align*}' +\
             r'M              &= 0.95 \\' +\
             r'\xi            &= 0.5  \\' +\
             r'\mu            &= 0.1  \\' +\
             r'a/b            &= 0    \\' +\
             r'\delta_{99}/L  &= 0      ' +\
             r'\end{align*}',
             verticalalignment='center',
             horizontalalignment='center')



plt.savefig('output.pdf')
plt.show()

enter image description here