6
나는이 작업을하기 위해 몇 시간 동안 노력했다. 나는 'python-gantt'패키지를 사용해 보았는데, 운이 없었다. 나는 또한 멋지게 시도했다. (어느 쪽이 아름다웠는지, 나는 그들의 민감한 데이터를 자신의 사이트에서 호스팅 할 수 없기 때문에 작동하지 않을 것이다).핫라인으로 간트 차트를 만드시겠습니까?
나의 출발점은 여기에서 코드입니다 : How to plot stacked event duration (Gantt Charts) using Python Pandas?
세 가지 요구 사항 :
- 가 y 축이 아닌 숫자에 '이름'을 포함합니다.
- 다른 이벤트가 여러 개있는 경우 모든 이벤트 기간을 한 줄에 입력하십시오. 이렇게하면 패턴을 쉽게 식별 할 수 있습니다. Lisa는 시각적으로 한 줄만 표시합니다.
- 가능한 경우 해당 행 상단에 '이벤트'가 포함됩니다 (예 : 리사의 첫 번째 라인은 "고용"이라고 말할 것입니다. 내가 제안을 열려있어
...
는 시각화 : 나는 전반에 걸쳐 다양한 인력 이벤트의 기간을 표시 할 패턴 파악에 도움이됩니다.
from datetime import datetime
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.dates as dt
df = pd.DataFrame({'Name': ['Joe','Joe','Lisa','Lisa','Lisa','Alice'],
'Event': ['Hire','Term','Hire','Transfer','Term','Term'],
'Start_Date': ["2014-01-01","2014-02-01","2015-01-01","2015-02-01","2015-03-01","2016-01-01"],
'End_Date': ["2014-01-31","2014-03-15","2015-01-31","2015-02-28","2015-05-01","2016-09-01"]
})
df = df[['Name','Event','Start_Date','End_Date']]
df.Start_Date = pd.to_datetime(df.Start_Date).astype(datetime)
df.End_Date = pd.to_datetime(df.End_Date).astype(datetime)
fig = plt.figure()
ax = fig.add_subplot(111)
ax = ax.xaxis_date()
ax = plt.hlines(df.index, dt.date2num(df.Start_Date), dt.date2num(df.End_Date))