seaborn grouped/stacked barplot not displaying correctly

I have a below barplot which I want to be either stacked with wider bars or grouped so that individual bars can be seen properly. With dodge = False I am able to get stacked bars but all the records are showing as stacked either due to color combination or if something is missing. Example for Year 2012 there are 7 records but can see only 4 records stacked.

Also, I am able to show percentage of each stack but its showing only the value of alphabetically first team value.

# Set the figure size
fig, ax = plt.subplots(figsize=(20, 12))
sns.set_style("darkgrid") #darkgrid, whitegrid, dark, white, ticks
sns.set_context("notebook") #paper, notebook, talk, poster

# plot a bar chart
g = sns.barplot(
    ax = ax,
    #palette = 'hls',
    palette = sns.color_palette('Paired'), 
    lw = 0.1,
    alpha = 0.7, #for bar transparency
    #width = 8,
hue = 'Team')

def change_width(ax, new_value) :
    for patch in ax.patches :
        current_width = patch.get_width()
        diff = current_width - new_value

        # we change the bar width

        # we recenter the bar
        patch.set_x(patch.get_x() + diff * 0.1)

change_width(ax, 0.5)


g.set_xticklabels(g.get_xticklabels(),rotation = 90, size = 10)
g.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)

enter image description here

Now if I change Dodge= True, it displays grouped bars but overlaps and again only one of that group shows the value of percent on top of the bar. How to increase the spacing within grouped bars.

enter image description here

Update: As per @JohanC suggestions I have pivoted the data and plotted the bar graph using basic matplotlib but bars are still overlapping. Any suggestions ?

df_full_pivot.plot(kind='bar',  stacked=False, figsize=(20, 10), width = 2, align='center')
plt.ylabel('Win %')
for container in ax.containers:
    plt.setp(container, width=1)

#ax.yaxis.grid(color='gray', linestyle='dashed', alpha=0.6)
#plt.legend(['NA', 'EU', 'JP', 'Others'], loc='upper left', ncol = 4)
plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)

enter image description here

How many English words
do you know?
Test your English vocabulary size, and measure
how many words do you know
Online Test
Powered by Examplum