Очевидно, что I
намного меньше, чем W
. Так что расстояния разные. Если вы хотите распределить эти интервалы более равномерно, рассмотрите выравнивание по центру букв
plt.text(index, .5, letter, ha="center")
Также рассмотрите возможность использования моноширинного шрифта, то есть шрифта, в котором каждая буква имеет одинаковую ширину, например,
plt.text(index, .5, letter, ha="center",
fontproperties=FontProperties(family='Consolas'))
