我正在将matplotlib与tkinter一起使用以显示图形。我正在尝试更改我的y轴刻度的格式以适应图表的需要。这是我尝试过的。
a.set_title('Ending AUM')
a.set_xlabel('Dates')
a.set_ylabel('Ending AUM ($)')
a.grid(True)
a.get_yaxis().set_major_formatter(matplotlib.ticker.FuncFormatter(lambda x, p: format(int(x), ',')))
但是,这会将刻度线格式化为整数,并带有千位标记的逗号。如图所示。
我将如何设置其格式,以便y轴刻度线以$开头,以小数点结尾。谢谢。
答案 0 :(得分:1)
您可以使用StrMethodFormatter
类,为其提供格式字符串,该字符串使用与Python的str.format()
函数相同的mini-language。
在这种情况下,以美元符号开头和以十进制结尾的格式字符串将为"${x:.2f}"
。 x
标记字段,StrMethodFormatter
类允许格式字符串中的两个字段:x
表示值,pos
表示位置。
代码的最后一行将变为:
a.get_yaxis().set_major_formatter(matplotlib.ticker.StrMethodFormatter("${x:.2f}"))
如果您想要更多或更少的小数位,只需更改数字2
。如果要保留数千个分隔符,请在冒号后加一个逗号:"${x:,.2f}"
。