使用Matplotlib图例中的格式进行文本对齐

时间:2018-08-07 08:06:59

标签: python matplotlib legend

我正在尝试使两个单词在matplotlib中的图例中对齐。使用print语句,我可以使用可用的格式化工具来完成此操作(<表示左对齐,>表示右对齐),但是在图例中,结果不同。

import matplotlib.pyplot as plt
import numpy as np

str1 = r'{:<18} {:>12}'.format('HadGEM2-ES'+',', r'$\lambda$')
str2 = r'{:<18} {:>12}'.format('inmcm4'+',', r'$\lambda$')
print(str1)
print(str2)

plt.plot(np.arange(10), label=str1)
plt.plot(0.8*np.arange(10), label=str2)
plt.legend()

这样print语句的输出将变得整洁:

HadGEM2-ES,           $\lambda$
inmcm4,               $\lambda$

但是图中的图例显示方式有所不同。如何使图中的图例对齐。

figure showing unaligned legends

1 个答案:

答案 0 :(得分:2)

该间距对于print语句是正确的,因为控制台中使用的字体是等宽字体。您可以通过以下方式在图例中复制它:

plt.legend(prop={'family': 'monospace'})