您好我试图在Matplotlib中使用Latex文本渲染为标签启用粗体字体。我可以为数值变量(整数,浮点数)执行此操作,但使用字符串变量失败。
这样可行:
a = 1
plt.plot(X, y, label=r'\textbf{}'.format(a))
但这并不是:
a = 'text'
plt.plot(X, y, label=r'\textbf{}'.format(a))
我知道我可以这样做:
plt.plot(X, y, label=r'\textbf{text}')
但是如何使用字符串变量的格式?
谢谢!
答案 0 :(得分:1)
您需要转义latex命令的大括号,因为.format
函数使用这些括号来确定将其参数放在文本中的位置。
考虑例如
r'\textbf{}'.format("something")
导致
"\textbfsomething"
这当然没有有效的乳胶命令。另一方面
r'\textbf{}'.format(9)
结果
"\textbf9"
是有效的latex命令。要在保存方面,总是逃避所有大括号。
import matplotlib.pyplot as plt
plt.rcParams["text.usetex"] = True
a = 1
plt.plot([1,2], [2,3], label=r'\textbf{{{}}}'.format(a))
a = 'text'
plt.plot([1,2], [1,2], label=r'\textbf{{{}}}'.format(a))
plt.legend()
plt.show()