import matplotlib.pyplot as plt
import pandas as pd
from mpl_ornaments.titles import set_title_and_subtitle

fig, ax = plt.subplots(nrows=1, ncols=1)

#1
df = pd.read_csv('data/product-design.csv', comment='#')
df.sort_values(by='Start', inplace=True, ascending=True)

#2
df['Duration'] = df['End'] - df['Start']

#3
ax.barh(y=df['Activity'], left=df['Start'], width=df['Duration'], 
        edgecolor='k')

#4
start, end = df['Start'].min(), df['End'].max()
ax.set_xlim(left=start, right=end)

#5
ax.invert_yaxis()

#6
ax.set_xticks(ticks=range(start, end+1), minor=True)

#7
ax.grid(visible=True, which='major', axis='x', linewidth=1)
ax.grid(visible=True, which='minor', axis='x', linewidth=0.5)

#8
ax.set_xlabel('Months after go ahead', fontsize=14)

title = f'Product design Gantt chart'
subtitle = 'Activities only'
set_title_and_subtitle(title=title, subtitle=subtitle, fig=fig, 
                       alignment='left', h_offset=-30)


fig.savefig('charts/gantt-base.png', bbox_inches='tight', dpi=600)