6

当我给 matplotlib 一个注释字符串时,例如

'$\frac{A}{B} = C$'

我指定字体大小为 18,A 和 B 以 12.6 pt 呈现,而 C 以 18 pt 呈现。我希望 A、B 和 C 的大小都相同。我该怎么做呢?

在 LaTeX 文档中,如果您给出命令

\begin{equation}
\frac{A}{B} = C
\end{equation}

你得到一个分数,其中 A、B 和 C 的大小都相同,但如果你这样做

$\frac{A}{B} = C$

与文本内联,A 和 B 以 12.6 pt 呈现,而 C 以 18 pt 呈现。因此看起来 matplotlib 的数学文本正在模拟 LaTeX 的内联模式。在 LaTeX 中你可以写

$\displaystyle\frac{A}{B} = C$

然后 A、B 和 C 的大小都相同,即使在内联模式下也是如此。我在 matplotlib 中尝试过,但 mathtext 无法识别命令 \displaystyle。=(

有没有办法让它在 Matplotlib 的数学文本中工作,或者我是否在我的 .matplotlibrc 文件中将 text.usetex 更改为 true?(如果可能的话,我想继续使用 mathtext,因为它要快得多。)

我的设置:matplotlib v1.2.0 python 2.7 OS X 10.8

4

2 回答 2

5

对于遇到此问题且不想设置为的任何人"text.usetex",matplotlibTrue现在支持\dfrac宏(相当于\displaystyle\frac在 LaTeX 中)\frac从 2.1 版开始替换

于 2019-02-20T17:46:47.990 回答
3

正如你所说,你可以通过使用 \displaystyle 来修复它:

$\displaystyle\frac{A}{B} = C$

为了允许 matplotlib 对所有文本处理使用乳胶,您必须在 matplotlibrc 中将 text.usetex 变量定义为 True:

text.usetex          : True

我做了一个小例子来验证它,它运行良好:

import matplotlib.pyplot as plt
plt.plot(range(200))
plt.text(100,50,r'$\displaystyle\frac{A}{B}=C$')

我很抱歉,但由于我是新人,我不能发布任何图像。

于 2013-04-24T21:09:02.127 回答