我正在努力使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()
和想法?
谢谢!
答案 0 :(得分:1)
ljust
在指定的文本中附加尽可能多的空格。但是,对于普通字体,空间比大多数其他字母小。比较:
下面的文字是用所谓的等宽字体书写的,其中每个字母(包括空格)都有相同的空格 - 因此就是名字。
您需要使用这样的字体才能使您的程序以预期的方式工作:
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()
如果这不是一个选项,您可以在您设置宽度的文本后面放置一个矩形,请参阅此问题Matplotlib: how to specify width of x-label bounding box