2016-07-01 4 views
1

ラベル:matplotlibのドル記号には、次の棒グラフを考える

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目盛りラベルを表示したいと思います:

$ 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), ','))) 

を...しかし、私は両方をどのように入手できますか?

ありがとうございます!

答えて

11

str.format()仕様のミニ言語を使用するStrMethodFormatterを使用できます。

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

+0

グレート!どうもありがとう。 –

+0

は、それを1K、2K、..にするために遠くにありますか? – weefwefwqg3

関連する問題