2017-11-04 1 views
0

스프레드 시트에서 데이터를 가져 와서 모든 것을 그래프로 만들려고하지만 데이터를 그래프에 넣을 때마다 그래프가 알파벳순으로 표시됩니다. enter image description herePython matplotlib - 그래프 unalphabetize

하지만 그것으로 공급 목록은 다음과 같습니다

여기
['Apr 2016', 'May 2016', 'Jun 2016', 'Jul 2016', 'Aug 2016', 'Sep 2016', 
'Oct 2016', 'Nov 2016', 'Dec 2016', 'Jan 2017', 'Feb 2017', 'Mar 2017', 
'Apr 2017', 'May 2017', 'Jun 2017', 'Jul 2017', 'Aug 2017', 'Sep 2017', 
'Oct 2017'] 

내 코드입니다 :

import pandas as pd 
import matplotlib.pyplot as plt 

sheet = pd.ExcelFile("path to spreadsheet").parse() 


def graph_column(category_name, exel_sheet): 

    plt.xlabel("Month") 
    plt.ylabel("Dollars") 
    plt.title(category_name) 

    month_list = [] 
    row_list = [] 

    for row in range(len(exel_sheet["Monthly Sales"])): 
     month = exel_sheet["Monthly Sales"][row] 
     month_list.append(month) 
     row = float(exel_sheet[category_name][row]) 
     row_list.append(row) 

    print(month_list) 
    plt.barh(month_list, row_list) 
    plt.show() 


graph_column("Grocery", sheet) 

어떻게 할 수 너무 그래프 밤은이 알파벳 순으로 정렬?

답변

0

바 plot은 귀하의 날짜가 카테고리라고 생각합니다. 물론 하나의 옵션을 실제 날짜 (datetime 개 개체)로 변환하는 것이 가능하지만이 경우 잠재적으로 간단한 솔루션은 막대를 정수 값으로 플롯하고 이에 따라 레이블을 설정하는 것입니다.

plt.barh(range(len(row_list)), row_list) 
plt.yticks(range(len(row_list)), month_list) 

plt.gca().invert_yaxis()을 통해 y 스케일을 반전하는 것이 좋습니다.