Seaborn和Pandas:如何设置格式为英镑的yticks

时间:2016-07-07 21:00:51

标签: pandas seaborn

我正在尝试将一个情节的yticks格式化为带有'£'的磅,最好是逗号分隔符。目前yticks的代表如下:20000,30000,40000。我的目标是:20,000英镑,30,000英镑,40,000英镑等等。

以下是一个等效的可重复示例:

import seaborn as sis
tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="tip", data=tips, whis=np.inf)
sns.stripplot(x="day", y="tip", data=tips, jitter=True)

我如何格式化这样的yticks:£12.00,£10.00,£8.00等。

经过3个小时的谷歌搜索并且失败了各种plt.ytickax.set_yticklabels选项后,我完全迷失了。

enter image description here

1 个答案:

答案 0 :(得分:8)

您可以使用StrMethodFormatter,它使用str.format()规范迷你语言。

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick
import seaborn as sns

fig, ax = plt.subplots()
# The next line uses `utf-8` encoding. If you're using something else
#     (say `ascii`, the default for Python 2), use
#     `fmt = u'\N{pound sign}{x:,.2f}'`
#     instead.
fmt = '£{x:,.2f}'
tick = mtick.StrMethodFormatter(fmt)
ax.yaxis.set_major_formatter(tick) 

tips = sns.load_dataset("tips")
sns.boxplot(x="day", y="tip", data=tips, whis=np.inf, ax=ax)
sns.stripplot(x="day", y="tip", data=tips, jitter=True, ax=ax)

y-labels in pounds

fmt = '£{x:,.2f}'中的逗号会启用千位分隔符,因此它也会按照您想要的更高金额运行。