如何在matplotlib图中删除LaTeX风格数学中的奇怪空间

时间:2012-07-29 20:59:51

标签: python latex matplotlib

我在matplotlib中使用以下作为轴标签:

"Pixel Radiance ($W/m^2/\mu m$)"

但是当我用y轴标签生成一个图形时,我得到下面的图像,它在m ^ 2和\ mu之间有一个奇怪的空间,这使得它看起来很奇怪。我怎样才能删除这个奇怪的空间?

example graph

一个可重现的例子,不使用我自己的任何数据,是:

from matplotlib.pyplot import *
plot([1, 2, 3], [1, 2, 3])
ylabel("($W/{m^2}/\mu m$)")

2 个答案:

答案 0 :(得分:14)

您可以使用负空格\!

r"Pixel Radiance ($W/m^2\!/\mu m$)"

顺便提一下,我建议使用带有LaTeX公式的原始字符串,因为这会阻止LaTeX命令(或其中的一部分)被解释为反斜杠转义:您可能不希望\tau结束为选项卡后跟au

答案 1 :(得分:1)

Matplotlib尝试解释Latex代码,并有自己的打印文本的方法。结果不一定与真正的Latex编译器的输出匹配。如果需要真正的Latex文本呈现,则必须启用text.usetex rc参数。这也允许您加载Latex包(如siunitx)并创建与您的文档匹配的数字(如果您打算包含它们)。

使用Latex时不会出现额外的空间。您可以使用变通方法并添加负空格,但在创建文档数据时,我倾向于使用Latex。