Разделение разрядов c помощью аргумента fmt в bar_label()
Я использую bar_label(), чтобы добавить значения к столбцам столбчатой диаграммы sns.barplot.
chart = sns.barplot(data=total_sales, palette="rocket", x="year", y="value_1000", hue='market')
chart.bar_label(chart.containers[0], fmt='%d', padding=3, fontsize=10)
Никак не могу понять, как записать fmt таким образом, чтобы разряды разделялись запятой.
Глобально установлено:
pd.set_option('display.float_format', '{:,.2f}'.format)
Но работает только для таблицы. Пробовал записать fmt='%:,.2f' не помогает. Другие вариации с запятой, вроде fmt='%,d' - приводят к ошибке.
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Вы не там изменяете форматирование.
Я предполагаю, что вам понадобится использовать локаль.
import locale
locale.setlocale(locale.LC_ALL, 'ru_RU')
fig, ax = plt.subplots()
data = [11.5,12.5,5.5]
ax.bar(x = [1,2,3], height=data)
container = ax.containers[0]
ax.bar_label(container, labels=[f"{locale.format_string('%.3f', x)}" for x in container.datavalues])
получите такой результат:
