gpt4 book ai didi

python-3.x - MatPlotLib美元符号与数千个逗号刻度标签

转载 作者:行者123 更新时间:2023-12-04 04:54:45 25 4
gpt4 key购买 nike

给出以下条形图:

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd

df = pd.DataFrame({'A': ['A', 'B'], 'B': [1000,2000]})

fig, ax = plt.subplots(1, 1, figsize=(2, 2))

df.plot(kind='bar', x='A', y='B',
align='center', width=.5, edgecolor='none',
color='grey', ax=ax)
plt.xticks(rotation=25)
plt.show()


enter image description here

我想将y-tick标签显示为数千美元,如下所示:

$ 2,000

我知道我可以用它添加一个美元符号:

import matplotlib.ticker as mtick
fmt = '$%.0f'
tick = mtick.FormatStrFormatter(fmt)
ax.yaxis.set_major_formatter(tick)


...然后添加一个逗号:

ax.get_yaxis().set_major_formatter(
mtick.FuncFormatter(lambda x, p: format(int(x), ',')))


...但是我怎么都可以呢?

提前致谢!

最佳答案

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

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.ticker as mtick

df = pd.DataFrame({'A': ['A', 'B'], 'B': [1000,2000]})

fig, ax = plt.subplots(1, 1, figsize=(2, 2))
df.plot(kind='bar', x='A', y='B',
align='center', width=.5, edgecolor='none',
color='grey', ax=ax)

fmt = '${x:,.0f}'
tick = mtick.StrMethodFormatter(fmt)
ax.yaxis.set_major_formatter(tick)
plt.xticks(rotation=25)

plt.show()


Both commas and dollar signs

关于python-3.x - MatPlotLib美元符号与数千个逗号刻度标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38152356/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com