Subplot 没有绘制实际数据,我该怎么办?

Subplot is not plotting the actual data, what should I do?

我有一个与专业相关的薪水数据框。 我正在尝试创建按薪水排序的专业水平条形图。 我的代码如下所示:

fig, ax = plt.subplots()

topTenMajor = df[['Major','Salary']].sort_values('Salary', ascending=False).set_index('Major')
topTenMajor.sort_values('Salary', ascending=True).plot.barh(figsize=(5,10))

ax.set_title('Majors by Salary')
ax.set_xlabel('Salary')
ax.set_ylabel('Majors')

但是,我的图表在顶部显示了一个带有标题、x 标签和 y 标签的空白图, 然后是没有标题和标签的空图下的水平条形图。 为什么会这样?

感谢您的帮助!

默认情况下,

barh 将在新图形/坐标轴中绘制。 要么你需要告诉它在你之前创建的 fig, ax 中绘制。 或者您可以在自动创建的活动图中设置标题和标签:

topTenMajor = df[['Major','Salary']].sort_values('Salary', ascending=False).set_index('Major')
topTenMajor.sort_values('Salary', ascending=True).plot.barh(figsize=(5,10))

plt.title('Majors by Salary')
plt.xlabel('Salary')
plt.ylabel('Majors')