2017-05-13 7 views
0

私は、数十億ドルの国のGDPを示すこのデータセットを持っています(1兆GDP = 1000)。 Seaborn:distplot binの範囲を設定していますか?

import numpy as np 
import pandas as pd 
import seaborn as sns 
import matplotlib.pyplot as plt 
%matplotlib inline 

df = pd.read_csv('2014_World_GDP') 
df.sort('GDP (BILLIONS)',ascending=False, inplace=True) 
sorted = df['GDP (BILLIONS)'] 

fig, ax = plt.subplots(figsize=(12, 8)) 
sns.distplot(sorted,bins=8,kde=False,ax=ax) 

上記のコード

は私に次の図を与える:私はビンは、彼らがより多くの250,500,750,1000,2000,5000,10000,20000 [のように見えるので、範囲設定されている誰でも何をしたいのか image

]。

海底でそれを行う方法はありますか?

+1

、 'hist_kws'パラメータを使用します。http://seaborn.pydata.org/generated/seaborn.distplot.html#seaborn.distplot –

答えて

0

対数ビンを使用できます。これは、自分と同じように配布されているデータでうまく動作します。ここでは一例です:APIドキュメント毎

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

df = pd.DataFrame() 
df['GDP (BILLIONS)'] = 2000*1./(np.random.random(250)) 
df.sort_values(by='GDP (BILLIONS)',ascending=False, inplace=True) 

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

sns.distplot(df['GDP (BILLIONS)'].values,bins=8,kde=False,ax=ax[0]) 
ax[0].set_title('Linear Bins') 

LogMin, LogMax = np.log10(df['GDP (BILLIONS)'].min()),np.log10(df['GDP (BILLIONS)'].max()) 
newBins = np.logspace(LogMin, LogMax,8) 
sns.distplot(df['GDP (BILLIONS)'].values,bins=newBins,kde=False,ax=ax[1]) 
ax[1].set_xscale('log') 
ax[1].set_title('Log Bins') 

fig.show() 

enter image description here

関連する問題