2016-12-28 17 views
1

私の用語を許して、私は統計やプロットの専門家ではありません!x軸上のパーセンタイルラベルの均等分配

パンダを使用して、「5 9s」までバケット化された分位データをプロットしようとしています。 0.9と1.0との間のX軸間隔が圧縮されるプロットで

q = df['foo'].quantile([.1, .2, .3, .4, .5, .6, .7, .8, .9, .99, .999, .9999, .99999, 1]) 
q.plot() 

結果:

enter image description hereすなわち偏在整数値のシリーズ「foo」を有する所定のデータフレーム「DF」のために、あります

x軸に分位数のバケットを均等に配置する方法はありますか?

ありがとうございます!

+0

一つの可能​​性は、分位数のバケット1-1マッピングである新しい変数を設定することで、 1からnまでカウントします(nはバケットの数です)。これをx軸としてグラフを作成し、分位数をラベルとして追加します。 – lmo

+0

lmo、これを回答に変更したい場合、私はあなたに信用を与えます。ありがとう。 – user1612443

+0

コードを回答として投稿したい場合は、問題ありません。私は今、ちょっと心配しています。最後に提案などのための素早い感謝を追加してください。あなたが投稿したときに私に知らせるなら、あなたにアップヴォートを与えます。さもなければ、私は今週末にそれに亀裂をかけるでしょう。 – lmo

答えて

0

lmoのアドバイスを受けて、私にはうまくいきます。シリーズ 'A' を有する所定のデータフレーム 'DF' の

percentiles = [.1, .2, .3, .4, .5, .6, .7, .8, .9, .99, .999, .9999, .99999, 1.0] 

pct = df['A'].quantile(percentiles) 
xticks = range(0, len(percentiles), 1) 
ax = pct.plot (xticks=xticks) 
ax.set_xticklabels([str(p) for p in percentiles) 
plt.show() 

enter image description here

0

私は

import pandas as pd import numpy as np a = np.sort(np.random.rand(1000)) b = a.repeat(np.arange(len(a))) b += np.random.rand(len(b))/100 s = pd.Series(b) s.hist() 

enter image description here

は、あなたがこの
使用にあなたが欲しいしかし、多くのビンをしたいの例 pd.qcut

使用すると思います。私は20を使いました。私もラベルのパラメータを渡しました。それがなければ、パンダはカットが作られた場所の端にラベルを付けます。

q = pd.qcut(s, 20, labels=range(20)) 
+0

残念ながら、私のデータは、一意でないビンエッジを避けるために十分に分散されていません。いずれにせよ、90パーセンタイル以上の精度を示す能力が必要です。おそらく私はあなたの反応を完全に理解していないでしょう。 – user1612443

関連する問題