sns.set_style('white')
df = pd.DataFrame({'A': np.random.choice(['foo', 'bar'], 100), 'B': np.
    random.choice(['one', 'two', 'three'], 100), 'C': np.random.choice([
    'I1', 'I2', 'I3', 'I4'], 100), 'D': np.random.randint(-10, 11, 100),
    'E': np.random.randn(100)})
p = pd.pivot_table(df, index=['A', 'B'], columns='C', values='D')
e = pd.pivot_table(df, index=['A', 'B'], columns='C', values='E')
ax = p.plot(kind='barh', xerr=e, width=0.85)
for r in ax.patches:
    if r.get_x() < 0:
        ax.text(0.25, r.get_y() + r.get_height() / 5.0, '{:>7.1f}%'.format(
            r.get_x() * 100), bbox={'facecolor': 'red', 'alpha': 0.5, 'pad':
            1}, fontsize=10, family='monospace', zorder=10)
Pandas Bar plot, how to annotate grouped horizontal bar charts