Проблема в том, что вы назначаете графики объектам с двумя осями, а не используете их для построения.Правильный способ состоит в том, чтобы напрямую использовать объекты оси для построения barh
.Тогда все будет работать как положено.
import matplotlib.pyplot as plt
y = ['F','M','H']
x1 = [8, 4, 3]
x2 = [2, 4, 7]
fig, axes = plt.subplots(ncols=2, sharey=True)
axes[0].barh(y, x1, align='center', color='b') # <---- Changed here
axes[1].barh(y, x2, align='center', color='r') # <---- Changed here
axes[0].invert_xaxis()
plt.show()
