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()
如果这不是一个选项,您可以在文本后面放置一个矩形,您可以根据需要设置其宽度,请参阅此问题
我正在努力使 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()
如果这不是一个选项,您可以在文本后面放置一个矩形,您可以根据需要设置其宽度,请参阅此问题