2016-11-13 3 views
0

Я использую функцию построения панды для подстроек гистограммы.Функция функции Pandas возвращает np.array - как ее вернуть AxesSubplot

df.plot.hist(subplots = True) 

Я хочу добавить вертикальную линию к каждому из участков. Я знаю, что вы можете сделать это в Matplotlib участке с использованием

plt.axvlines 

Но как я могу получить доступ к отдельным подзаговорам сгенерированных панд? Я смотрел: Is there a way to pass different vertical lines to each subplot when using pandas histogram with "by=somevar"? Но может кто-нибудь, пожалуйста, дать мне фактический пример того, как это сделать?
Спасибо!

ответ

0

DataFrame.hist() возвращает список объектов Axes. Вы просто должны пройти по каждой оси и добавить вам вертикальную линию

df = pd.DataFrame(np.random.random((100,5))) 
axs = df.plot.hist(subplots = True) 
for ax in axs: 
    ax.axvline(0.5) 
+0

Я получаю эту ошибку с вашим решением: AttributeError: «numpy.ndarray» объект не имеет атрибут «axvline» –

+0

я вижу здесь - Http: // pandas.pydata.org/pandas-docs/version/0.17.0/generated/pandas.DataFrame.plot.hist.html - что df.plot.hist генерирует объект Axes или массив numpy. Это явно то, что дает мне ошибку. Любая идея получает список тополей вместо этого? –

+0

Вам необходимо предоставить образец DataFrame. В моих тестах я никогда не мог вернуть ничего, кроме одного объекта «Axes» или списка «Axes». Вы пытались использовать 'DataFrame.hist()' вместо 'DataFrame.plot.hist()'? –

 Смежные вопросы

  • Нет связанных вопросов^_^