編集:この質問は2013年にパンダ〜0.13で発生し、バージョン0.15〜0.18の間のどこかで箱ひげ図を直接サポートすることで廃止されました(@Cireoの遅い回答によると、パンダはこれが尋ねられたため、カテゴリのサポートを大幅に改善しました)。
boxplot
pandasDataFrameの給与列を取得できます...
train.boxplot(column='Salary', by='Category', sym='')
...ただし、「カテゴリ」列で使用されるインデックス順序を定義する方法がわかりません。別の基準に従って、独自のカスタム順序を指定したいと思います。
category_order_by_mean_salary = train.groupby('Category')['Salary'].mean().order().keys()
カスタム列の順序を箱ひげ図の列に適用するにはどうすればよいですか?(順序付けを強制するために接頭辞を付けて列名を醜くまとめる以外)
'Category'は、27個の異なる値をとる文字列です(実際には、categoricalである必要がありますが、これは0.13に戻り、categoricalはサードクラスの市民でした)['Accounting & Finance Jobs','Admin Jobs',...,'Travel Jobs']
。したがって、次のように簡単に因数分解できます。pd.Categorical.from_array()
検査では、制限は内部pandas.tools.plotting.py:boxplot()
にあり、順序付けを許可せずに列オブジェクトを変換します。
- pandas.core.frame.py.boxplot()はへのパススルーです
- インスタンス化するpandas.tools.plotting.py:boxplot() ..。
- インスタンス化するmatplotlib.pyplot.py:boxplot() ..。
- matplotlib.axes.py:boxplot()
カスタムバージョンのpandasboxplot()をハックするか、オブジェクトの内部にアクセスできると思います。また、拡張リクエストを提出します。