Python只显示一个图形输出



我使用下面给出的代码。它工作得很好,但只显示最后代码的输出。当代码运行时,我想看到所有的数字。我怎样才能做到这一点?

by_marry_data = data.groupby('Marital_Status')['Churn_Flag'].mean()
by_marry_data.plot(kind='bar', ylabel='Churn Ratio')
by_income_data = data.groupby('Income_Category')['Churn_Flag'].mean()
by_income_data.plot(kind='bar', ylabel='Churn Ratio')

by_gender_data = data.groupby('Gender')['Churn_Flag'].mean()
by_gender_data.plot(kind='bar', ylabel='Churn Ratio')

如果它们在同一脚本或单元格中,则需要将plt.show()放在每个图的后面,除非您希望数据在同一图上绘制。

by_marry_data = data.groupby('Marital_Status')['Churn_Flag'].mean()
by_marry_data.plot(kind='bar', ylabel='Churn Ratio')
plt.show();
by_income_data = data.groupby('Income_Category')['Churn_Flag'].mean()
by_income_data.plot(kind='bar', ylabel='Churn Ratio')
plt.show();
by_gender_data = data.groupby('Gender')['Churn_Flag'].mean()
by_gender_data.plot(kind='bar', ylabel='Churn Ratio')
plt.show();

我认为您正在尝试绘制子图,例如:使用plt.subplot创建多个子图。

如果您想要在一个水平行中绘制每个图,您可以使用如下命令:

import matplotlib.pyplot as plt
plt.subplot(1, 3, 1)
by_marry_data.plot(kind='bar', ylabel='Churn Ratio')
plt.subplot(1, 3, 2)
by_income_data.plot(kind='bar', ylabel='Churn Ratio')
plt.subplot(1, 3, 3)
by_gender_data.plot(kind='bar', ylabel='Churn Ratio')

此外,您可以从水平切换到垂直交换每个plt中的前两个参数。

尝试如下。

可以在每个groupby上调用reset_index()。然后获取这些数据帧并绘制粗略的代码。

by_marry_data = data.reset_index().groupby('Marital_Status')['Churn_Flag'].mean()
by_income_data = data.reset_index().groupby('Income_Category')['Churn_Flag'].mean()
by_gender_data = data.reset_index().groupby('Gender')['Churn_Flag'].mean()

现在从第一个图中获取轴并进一步分配。

ax = by_marry_data.plot(kind='bar', ylabel='Churn Ratio')
by_income_data.plot(ax=ax)
by_gender_data.plot(ax=ax)

最新更新