我有一个名单,如
names = ['a b c', 'd e f', ...]
我需要在一个情节中使用粗体打印这些名称。所以我正在使用例如
for k in range(len(names)):
if k in [0,2]:
plt.text(x,y, '$\\bf{' + names[k] + '}$')
else:
plt.text(x,y, names[k])
但是这样以粗体显示的名称就像abc
而不是a b c
一样。当然'$\\bf{names[k]}$'
只打印 names[k]
。这样做的正确方法是什么?
我也试过这里的答案link没有任何运气。
答案 0 :(得分:1)
使用mathtext
具有剥离空间的不幸副作用。您需要转义空格(使用\
)才能使其正常工作。
但是,如果您没有特别需要使用mathtext,我建议您使用the fontdict=
option to Text
将重量更改为粗体。
我将如何做到这一点:
names = ['a b c', 'd e f', 'g h i']
bold = [True, False, True]
xys = [(-3,-1),(0,0),(2,1)]
for n,doBold,xy in zip(names,bold,xys):
t = ax.text(*xy, n, fontdict={'fontweight': 'bold' if doBold else 'normal'})