How to Show Values on Seaborn Barplot?

A Seaborn barplot displays the average value of a numerical variable with error bars indicating the range around the mean. Adding values directly on bars makes data interpretation easier and more precise.

Key Functions

The main functions used for displaying values on Seaborn barplots are:

  • sns.barplot() ? Creates the bar chart
  • enumerate() ? Adds counter to iterate over data
  • ax.text() ? Adds text labels to specific positions
  • plt.show() ? Displays the final plot

Method 1: Values Above Bars

Position text labels above each bar for clear visibility ?

import seaborn as sns
import matplotlib.pyplot as plt

# Data
categories = ['A', 'B', 'C', 'D', 'E']
values = [4, 1, 4.5, 2, 3]

# Create barplot
ax = sns.barplot(x=categories, y=values)

# Add values above bars
for i, v in enumerate(values):
    ax.text(i, v + 0.1, str(v), ha='center')

plt.show()

Method 2: Values Inside Bars

Place text inside bars for compact display ?

import seaborn as sns
import matplotlib.pyplot as plt

# Data
categories = ['A', 'B', 'C', 'D', 'E']
values = [3, 1, 4, 8, 2]

# Create barplot
ax = sns.barplot(x=categories, y=values)

# Add values inside bars
for i, v in enumerate(values):
    ax.text(i, v/2, str(v), ha='center', color='white')

plt.show()

Method 3: Custom Formatting

Format values as percentages or with specific decimal places ?

import seaborn as sns
import matplotlib.pyplot as plt

# Data
categories = ['A', 'B', 'C', 'D']
values = [0.3, 0.1, 0.2, 1]

# Create barplot
ax = sns.barplot(x=categories, y=values)

# Add percentage formatting
for i, v in enumerate(values):
    ax.text(i, v + 0.02, f'{v:.0%}', ha='center')

plt.show()

Method 4: Custom Styling

Apply custom colors and font sizes to text labels ?

import seaborn as sns
import matplotlib.pyplot as plt

# Data
categories = ['A', 'B', 'C']
values = [3, 1, 4]

# Create barplot
ax = sns.barplot(x=categories, y=values)

# Add styled text
for i, v in enumerate(values):
    ax.text(i, v + 0.1, str(v), ha='center', color='red', fontsize=14, fontweight='bold')

plt.show()

Method 5: Rotated Labels

Rotate text labels for better readability in tight spaces ?

import seaborn as sns
import matplotlib.pyplot as plt

# Data
categories = ['A', 'B', 'C']
values = [3, 1, 4]

# Create barplot
ax = sns.barplot(x=categories, y=values)

# Add rotated labels
for i, v in enumerate(values):
    ax.text(i, v + 0.1, str(v), ha='center', rotation=45)

plt.show()

Parameters Summary

Parameter Description Common Values
ha Horizontal alignment 'center', 'left', 'right'
va Vertical alignment 'center', 'top', 'bottom'
color Text color 'white', 'red', '#ab09eb'
fontsize Text size 10, 14, 'large'
rotation Text rotation angle 0, 45, 90

Conclusion

Use ax.text() with enumerate() to add value labels to Seaborn barplots. Position labels above bars for clarity or inside bars to save space. Customize formatting, colors, and rotation based on your visualization needs.

Updated on: 2026-03-27T07:45:18+05:30

7K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements