Add data labels to Seaborn factor plot
<p>I would like to add data labels to factor plots generated by Seaborn. Here is an example: </p>

<pre><code>import pandas as pd
from pandas import Series, DataFrame
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

titanic_df = pd.read_csv('train.csv')
sns.factorplot('Sex',data=titanic_df,kind='count')
</code></pre>

<p><a href="http://i.stack.imgur.com/pVziQ.png" rel="nofollow"><img src="http://i.stack.imgur.com/pVziQ.png" alt="This image is created"></a></p>

<p>How can I add the 'count' values to the top of each bar on the graph?</p>

<p>You could do it this way:</p>

<pre><code>import math
# Set plotting style
sns.set_style('whitegrid')

# Rounding the integer to the next hundredth value plus an offset of 100
def roundup(x):
    return 100 + int(math.ceil(x / 100.0)) * 100 

df = pd.read_csv('train.csv')
sns.factorplot('Sex', data=df, kind='count', alpha=0.7, size=4, aspect=1)

# Get current axis on current figure
ax = plt.gca()

# ylim max value to be set
y_max = df['Sex'].value_counts().max() 
ax.set_ylim([0, roundup(y_max)])

# Iterate through the list of axes' patches
for p in ax.patches:
    ax.text(p.get_x() + p.get_width()/2., p.get_height(), '%d' % int(p.get_height()), 
            fontsize=12, color='red', ha='center', va='bottom')

plt.show()
</code></pre>

<p><a href="http://i.stack.imgur.com/tEPd9.png" rel="nofollow"><img src="http://i.stack.imgur.com/tEPd9.png" alt="Image"></a></p>

python matplotlib seaborn