如何在情节中将数字从数千格式化为K风格

我想在 plotly python 中将 y 轴的格式从 K 格式的数千更改为数千。

enter image description here

stack overflow How to format a number from thousands to K style in plotly
原文答案
author avatar

接受的答案

由于您没有提供任何数据,甚至没有解释您想要在 y 轴上准确显示的内容,我将回答 should 的工作原理:

fig.update_yaxes(tickformat=".2s")  # will format to 2 sigfigs

如果您想要 y 轴的规则间隔刻度值,您可以传递值列表,或使用 dticktick0 ,在 the documentation 中进行了说明

因此,例如,您可以使用

fig.update_yaxes(tickformat="~s", tickvals=[*range(100000, 1000000, 1000)])

对于以 1000 为步长的刻度值,从 100000 开始,到 999000 结束,修剪不重要的尾随零。

请注意,一旦刻度值达到数百万, K 后缀将切换为 M ,依此类推。如果您 always 想使用 K ,则需要使用 ticktext 参数定义自己的:

tickvals = [*range(100_000, 1_000_000_000, 1000)]
ticktext = [f"{t // 1000:,}K" for t in tickvals]

fig.update_yaxes(tickvals=tickvals, ticktext=ticktext)

这将以逗号分隔并格式化以千为单位的数字并附加 'K' ,例如, 15485000 变为 '15,485K'


答案:

作者头像

对于新手,如果你发现你的 y 轴刻度格式像我的一样是奇怪的格式,请确保从 type of the column (在我的情况下为 GDP )。就我而言,它是字符串,因为我将一个 3 列的 numpy 数组转换为数据框,我没有注意到 numpy 数组将所有值都转换为字符串,包括 GDP。