2014-04-11 12 views
5

Mam dane w pliku csv skonstruowany tak:Jak narysować określone wiersze i kolumny pandasowej ramki danych (na podstawie nazwy wiersza i nazwy kolumny) na wykresie słupkowym z paskami błędów?

Subject group Result1 Result2... ResultN 
    101  a  .5   .1   .2 
    103  b  .1   .2   .5 
    104  b  .2   .3   .4 
    mean_a  a  .5   .1   .2 
    mean_b  b  .1   .6   .4 
    ste_a  a  .05  .02   .03 
    ste_b  b  .01  .05   .04 

Chcę tylko skończyć z działki bar, pogrupowane w rezultacie wartości Średni Wiersze dla każdej grupy, z stes jak paski błędów. Niestety, mam problem z tym. mogę przekonwertować dataframe do dwóch oddzielnych dataframes, jeden dla środków i jeden dla stes, tak:

   a  b 
    Result1 .5  .1 
    Result2 .1  .6 

Jednak nie mogę dowiedzieć się, jak wykreślić drugą dataframe z stes jako pionowe kreski, a moja metoda wydaje zbyt skomplikowane, więc zastanawiałem się, czy ktoś wie o prostszy sposób to zrobić, a jeśli nie, to jak korzystać z jednej ramek danych do wykreślania słupków błędów dla drugiej ramek danych.

+0

Jeśli pracujesz z pand .14 (wersja dev) to będzie dużo łatwiejsze: http://pandas-docs.github.io/pandas-docs-travis/ wizualizacja.html # wizualizacja-błędy – TomAugspurger

Odpowiedz

4

To całkiem proste, wystarczy przekazać dane o błędach do argumentu yerr tak samo, jak w przypadku matplotlib.

DF=pd.DataFrame({'a':[.5,.1],'b':[.1,.6]}) 
DF.index=['Result1','Result2'] 
DF.plot(kind='bar',yerr=DF.b) 

enter image description here

Powiązane problemy