matplotlib如何在填充后使文本在视觉上具有相同的长度space

matplotlib how to make text to have the same length visually after filling space

我正在努力使 matplotlib 中的文本在填充后具有相同的视觉长度 space。它总是不适合我。

这是我试过的,

from matplotlib import pyplot as plt

fig = plt.figure()
plt.text(0,1,'how are you', bbox=dict(facecolor='red', alpha=0.5))
plt.text(0,0,'how'.ljust(len('how are you'), bbox=dict(facecolor='red', alpha=0.5))
plt.show()

和想法?

谢谢!

ljust 将尽可能多的 space 附加到您指定的文本。然而,对于普通字体,space 比大多数其他字母小。比较:

下面的文字是用所谓的 monospace 字体书写的,其中每个字母(包括 space)都具有相同的 space - 因此得名。

您需要使用这样的字体才能使您的程序按预期方式运行:

from matplotlib import pyplot as plt
plt.rcParams['font.family'] = 'monospace'

fig = plt.figure()
plt.text(0,1,'how are you', bbox=dict(facecolor='red', alpha=0.5))
plt.text(0,0,'how'.ljust(len('how are you')), bbox=dict(facecolor='red', alpha=0.5))
plt.show()

如果这不是一个选项,您可以在文本后面放置一个矩形,您可以根据需要设置其宽度,请参阅此问题