Plotly Express:如何在数据标签上添加数千个逗号分隔符

equ*_*ity 5 plotly plotly-dash plotly-python

我正在使用该px.bar()函数来Plotly Express创建一些简单的条形图。

我的代码如下:

import plotly.express as px
import pandas as pd

test_df = pd.DataFrame({'Manufacturer':['Ford', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW', 'Ford', 'Mercedes', 'BMW'],
                          'Metric':['Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Orders', 'Sales', 'Sales', 'Sales', 'Sales', 'Sales', 'Sales', 'Warranty', 'Warranty', 'Warranty', 'Warranty', 'Warranty', 'Warranty'],
                          'Sector':['Germany', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA', 'Germany', 'Germany', 'Germany', 'USA', 'USA', 'USA'],
                          'Value':[45000, 70000, 90000, 65000, 40000, 65000, 63000, 2700, 4400, 3400, 3000, 4700, 5700, 1500, 2000, 2500, 1300, 2000, 2450],
                          'City': ['Frankfurt', 'Bremen', 'Berlin', 'Hamburg', 'New York', 'Chicago', 'Los Angeles', 'Dresden', 'Munich', 'Cologne', 'Miami', 'Atlanta', 'Phoenix', 'Nuremberg', 'Dusseldorf', 'Leipzig', 'Houston', 'San Diego', 'San Francisco']
                       })

df1 = pd.DataFrame(test_df.groupby(by=['Manufacturer', 'Sector'])['Value'].sum())

df1.reset_index(inplace=True)

fig = px.bar(df1, x='Manufacturer', y='Value', color='Sector', barmode='group', text='Value')

fig.show()
Run Code Online (Sandbox Code Playgroud)

是否可以为条形图上的千位值添加逗号分隔符?例如,“70,900”而不是“70900”?

我检查了https://plotly.com/python-api-reference/ generated/plotly.express.bar.html#plotly.express.bar 上的文档,但没有看到任何可以控制我正在寻找的行为的内容为了。

提前致谢!

Wod*_*den 7

有一个带有update_traces函数、texttemplate关键字的格式化程序,遵循D-3 格式

语法是:

fig.update_traces(texttemplate='%{text:,}')
Run Code Online (Sandbox Code Playgroud)


Anw*_*vic 3

您需要在绘图之前将逗号附加到数据框。所以,你可以这样做:

...
...
df1["Value"] = df1["Value"].apply(lambda x : "{:,}".format(x))
fig = px.bar(df1, x='Manufacturer', y='Value', color='Sector', barmode='group', text='Value')
fig.show()
Run Code Online (Sandbox Code Playgroud)

结果如下图所示: 在此输入图像描述