Bar Labels In Matplotlib/seaborn
In version 3.4, matplotlib added automatic Bar labels: https://matplotlib.org/stable/users/whats_new.html#new-automatic-labeling-for-bar-charts I'm trying to use this on a bar plot
Solution 1:
You can loop through the containers and call ax.bar_label(...)
for each of them. Note that seaborn creates one set of bars for each hue value.
The following example uses the titanic dataset and sets ci=None
to avoid the error bars overlapping with the text (if error bars are needed, one could set a lighter color, e.g. errcolor='gold'
).
import seaborn as sns
import matplotlib.pyplot as plt
titanic = sns.load_dataset('titanic')
fig, axs = plt.subplots(ncols=2, figsize=(12, 4))
for ax, col inzip(axs, ['age', 'fare']):
sns.barplot(
x='sex',
y=col,
hue="class",
data=titanic,
edgecolor=".3",
linewidth=0.5,
ci=None,
ax=ax
)
ax.set_title('mean ' + col)
ax.margins(y=0.1) # make room for the labelsfor bars in ax.containers:
ax.bar_label(bars, fmt='%.1f')
plt.tight_layout()
plt.show()
Post a Comment for "Bar Labels In Matplotlib/seaborn"