以粗体显示列表的元素

时间:2017-12-27 15:18:44

标签: python-2.7 matplotlib text

我有一个名单,如

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没有任何运气。

1 个答案:

答案 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'})

enter image description here