Не предоставляя данные и Минимальный, полный и проверяемый пример людям, прежде чем задать вопрос, затрудняет решение вашей проблемы.Это то, что вы должны иметь в виду в следующий раз.Тем не менее, вот один способ, который должен работать для вас.Идея состоит в том, чтобы создать объект оси ax
и передать его для построения обеих гистограмм на одном и том же рисунке.Затем вы можете изменить метки, ограничения и т. Д. Вне функции после построения всего графика.
PS: Как отметил Пол Х в комментариях ниже, DataFrame df
и имена столбцов должны также передаваться в качестве аргументов функции диаграммы, чтобы сделать ее более устойчивой
import matplotlib.pyplot as plt
def chart(ax1, k=2):
x = np.arange(0, 0.4, 0.001)
for j in range(k):
cluster = df.loc[df['cluster'] == j].reset_index()
ax1.hist(cluster['Average'], bins=50, density=1, stacked=True)
return ax1
fig, ax = plt.subplots()
ax = chart(ax, k=2)
plt.xlim(0, 0.4)
plt.xlabel('Batting Average')
plt.ylabel('Density')
plt.show()