如何在Tex-renderer中使用“%s”

时间:2014-03-07 13:19:01

标签: python-2.7 matplotlib latex

我想在matplotlib图中使用LaTex符号。首先我用过。

pl.ylabel(r'$\pi \rho$',family='Courier New')

没关系。但是现在我要使用的标签是变量的,来自其他* .py文件。我的想法是将此文件导入到标题所在的文件中:

import plot
YLabel = "$\pi \rho$"
plot(YLabel)

并在plot.py中写道:

pl.ylabel(r'%s' %(YLabel),family='Courier New')

但是出现此错误:

ValueError: 
$\pi$ $
ho$
      ^
Expected end of text (at char 6), (line:1, col:7)

我已经从matplotlib的文档中读过Text rendering With LaTeXWriting mathematical expressions,但它对我没有帮助。

1 个答案:

答案 0 :(得分:3)

实际发生的事情与字符串格式化无关(即调用x = "blah %s" % YLabel)。

这是由于您最初定义YLabel的方式。

例如,尝试:

x = "\rho"
print x

"\r"被解释为回车符并且不会打印。它只是打印“ho”。 (这适用于a number of other escape sequences, e.g. \n, \t, \x, \f, \b, etc.

要避免这种情况,您需要将原始字符串定义为“原始”字符串:

x = r"\rho"
print x

或显式转义"\r"序列:

x = "\\rho"
print x