Разделение разрядов 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])

получите такой результат:

введите сюда описание изображения

→ Ссылка