如何格式化刻度线数字样式?

时间:2019-04-12 21:46:28

标签: python-3.x matplotlib

我如何在Matplotlib x或y轴刻度标签上使用数字格式(例如x0.00%)作为数值标签?例如,我希望数字0.00125显示为标签的0.125%。我正在绘制每日股票收益为1、2和3 sigma的直方图。通常,该值在1.00%以下的范围内,但对于+/- 3 sigma,偶尔也可以> 10.0000%。因此,我将获得从0.0010%到10.0000%的小标签。是的,尾巴很胖;股票交易稀少;或闪存崩溃/恢复。谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您可以使用matplotlib.ticker来帮助您设置每个刻度线的格式。 在此示例代码中,我将每个值四舍五入到小数点后三位,并用所需的负号替换了负号。

您可以为x或y的不同值添加条件语句,并指定所需的股票代码!

import matplotlib.ticker as ticker

@ticker.FuncFormatter
def major_formatter(y, pos):
    label = "-" + str(-round(y, 3)) if y < 0 else str(round(y, 3))
    return label

ax.yaxis.set_major_formatter(major_formatter)

@ticker.FuncFormatter
def major_formatter(x, pos):
    label = "-" + str(-round(x, 3)) if x < 0 else str(round(x, 3))
    return label

ax.xaxis.set_major_formatter(major_formatter)