向MatplotLib中的條形圖標簽添加逗號
更新時間:2024-04-02 13:59:06問題闡述
我一直在使用ax.bar_label
方法向條形圖添加數據值。這個數字很大,比如143858918。如何使用ax.bar_label
方法向數據值添加逗號?我知道如何使用Annotate方法添加逗號,但是否可以使用bar_label
添加逗號,我不確定。是否可以使用可用的fmt
關鍵字參數?
精準答案
是否可以使用
fmt
關鍵字參數?
fmt
參數基于舊的%
運算符,該運算符不支持逗號分隔符。- 改為使用帶有f字符串的
labels
參數。
使用{:,.0f}
格式化容器的datavalues
以獲得逗號分隔符(如果需要更多小數位則增加0):
container = ax.containers[0]
ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])
或對于分組條形圖,迭代所有容器:
for container in ax.containers:
ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])
玩具示例:
x = np.random.default_rng(123).integers(10_000_000, size=5)
fig, ax = plt.subplots()
ax.bar(range(len(x)), x)
container = ax.containers[0]
ax.bar_label(container, labels=[f'{x:,.0f}' for x in container.datavalues])