d.plot.bar(stacked=True)
def normalize(d):
sums = d['count'].sum(level='land_cover')
return d['count'].div(sums, axis=0, level='land_cover') * d['tc_density_cor']
d = df.set_index(['land_cover', 'canopy_cat']).pipe(normalize).unstack()
d.plot.bar(stacked=True)