我想在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 LaTeX和Writing mathematical expressions,但它对我没有帮助。
答案 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