2015-05-02 6 views
2

У меня есть эти данные в панд:Как нарисовать сложены гистограмму в панд

 fork percentage_remains 
0  True   20.000000 
1  False   9.090909 
2  False   2.000000 
3  False   0.000000 
4  False   0.000000 
5  True   33.333333 
6  False   20.000000 
... 

, и я хочу сделать сложены гистограммы, где на оси абсцисс будет percentage_remains, по оси у будет degree (т.е. означает количество элементов в этом бункере), и он будет сгруппирован по fork - две уложенные гистограммы на том же участке, где первая гистограмма для всех значений равна fork == True, а вторая гистограмма для всех значений - fork == False. Я пытаюсь:

subset.plot(kind="hist", stacked=True, by="fork") 

но создает этот образ: wrong image и от меток и значений в этой гистограммы, кажется, что это на самом деле не сгруппированы по признаку «вилки».

ответ

1

А что-то вроде этого

import matplotlib.pyplot as plt 
subset = pd.DataFrame({'fork': {0: True, 1: False, 2: False, 3: False, 4: False, 5: True, 6: False}, 
'percentage_remains': {0: 20.0, 
    1: 9.0909089999999999, 
    2: 2.0, 
    3: 0.0, 
    4: 0.0, 
    5: 33.333333000000003, 
    6: 20.0}}) 

Фильтра для вилки == Истинной через логического индексирование

filter = subset["fork"] == True` 

Затем использовать Matplotlib непосредственно. Обратите внимание на то, что я передаю список, один элемент истинные ценности, а другой для ложных значений

plt.hist([subset["percentage_remains"][filter],subset["percentage_remains"][~filter]], 
                stacked=True) 
     plt.show() 

enter image description here

+0

Я надеялся на использование инструментов только из панд, но это будет делать трюк. Благодаря! –

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