【问题标题】:Format axis number to thousands with a comma if number>=10,000如果 number>=10,000,则用逗号将轴号格式化为千位
【发布时间】:2022-12-21 10:19:57
【问题描述】:

我正在尝试在 Python 中绘制两组测量值之间的 Spearman 相关图。 我的问题是我希望两个轴都用逗号显示千,但只有当它们有 5 个或更多数字时(例如 1000 应该是 1000,但 10000 应该是 10,000)。 抱歉,我不能发布数据和情节,因为它是科学材料。

这是我试过的一段代码:

a.get_xaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
a.get_yaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))

但它显然适用于所有数字。

【问题讨论】:

  • lambda x, _: f'{x:.0f}' if abs(x < 9999.5) else f'{x:,.0f}'

标签: python matplotlib seaborn


【解决方案1】:

我觉得应该是这样的:

a.get_yaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: '{:,}'.format(x)))

由于format是字符串的方法

【讨论】:

    猜你喜欢
    • 2014-11-16
    • 2022-12-06
    • 1970-01-01
    • 2015-03-25
    • 2017-08-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    相关资源
    最近更新 更多