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

时间:2017-12-06 00:25:13

标签: python matplotlib text string-length

我正在努力使matplotlib中的文本在填充空格后具有相同的视觉长度。它对我来说总是不起作用。

这是我尝试过的,

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()

和想法?

谢谢!

1 个答案:

答案 0 :(得分:1)

ljust在指定的文本中附加尽可能多的空格。但是,对于普通字体,空间比大多数其他字母小。比较:

enter image description here

下面的文字是用所谓的等宽字体书写的,其中每个字母(包括空格)都有相同的空格 - 因此就是名字。

您需要使用这样的字体才能使您的程序以预期的方式工作:

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()

enter image description here

如果这不是一个选项,您可以在您设置宽度的文本后面放置一个矩形,请参阅此问题Matplotlib: how to specify width of x-label bounding box