複数の列を a にプロットし、すべてをinsidepandas dataframe
を使用して別の列でグループ化するつもりです。ここには、matplotlib の同様の問題に対する良い答えがあります: Group boxplots ですが、オプションが付属しているという事実を考えると、 .groupby
seaborn.boxplot
matplotlib
seaborn.boxplot
groupby
seaborn
ここでは、失敗する再現可能な例を示します。
import seaborn as sns
import pandas as pd
df = pd.DataFrame(
[
[2, 4, 5, 6, 1],
[4, 5, 6, 7, 2],
[5, 4, 5, 5, 1],
[10, 4, 7, 8, 2],
[9, 3, 4, 6, 2],
[3, 3, 4, 4, 1]
], columns=['a1', 'a2', 'a3', 'a4', 'b'])
#Plotting by seaborn
sns.boxplot(df[['a1','a2', 'a3', 'a4']], groupby=df.b)
私が得るのは、groupby
オプションを完全に無視するものです:
一方、1 つの列でこれを行うと、別の SO の質問Seaborn groupby pandas Seriesのおかげで機能します。
sns.boxplot(df.a1, groupby=df.b)
したがって、すべての列を 1 つのプロットにまとめたいと思います (すべての列は同様のスケールになります)。
編集:
上記のSOの質問は編集され、この問題に対する「クリーンではない」回答が含まれるようになりましたが、誰かがこの問題についてより良いアイデアを持っているといいでしょう.