2016-10-25 17 views
0

によって分割のすべての列の一桁、箱ひげ図では、私はこの組み合わせのように見える何かしたい:私はしたい場合を除き<a href="http://seaborn.pydata.org/generated/seaborn.boxplot.html#seaborn.boxplot" rel="nofollow">boxplot API page</a>を見てみると、「ラベル」欄

>>> iris = sns.load_dataset("iris") 
>>> ax = sns.boxplot(data=iris, orient="h", palette="Set2") 

enter image description here

をそれは同様に、以下の例ではhue引数によって達成されるものに、特定のラベルを保持している列によって分割:

ax = sns.boxplot(x="day", y="total_bill", hue="smoker", data=tips, palette="Set3") 

enter image description here

この例では唯一のxyが定義されている場合に動作しますが、私が達成したいもののために私は(明らかに、ラベルを除く)xは基本的に私のデータフレームのすべての列になりたいとyはと同様に、周波数に最初の例に示されているもの。シーボーンでは実現できない場合は、他の視覚化ライブラリを使ってPythonを試してみます。

+0

インデックスを運ぶためにダミーの 'x'変数を使用できますか?' ara nge(len(y)) 'と思います。 –

+0

私が正しく従っていると、 'sns.boxplot(data = data、orient = 'h'、hue = 'target'、x = data.index)のようなものですか? こうすると、np.arange(len(data))のインデックスのボックスが表示されます。 編集時に誤って「enter」が押されました。二度。 – sissas

答えて

1

データはすべて可変ではなく、可変である(ワイドフォーマットではなくロングフォーマット)ので、データを「アンスタック」または「融解」する必要があります。ここで

はそれは次のようになります。提案されているよう

iris_xtab = seaborn.load_dataset("iris") 
iris_long = pandas.melt(iris, id_vars='species') 
seaborn.boxplot(x='species', y='value', hue='variable', data=iris_long) 

enter image description here

またはXなどの種の値を除外は、(あなたがダミーの値を割り当てる必要があり、以前の

ax = seaborn.boxplot(x='pos', y='value', hue='variable', 
        data=iris_long.assign(pos=1)) 

enter image description here

+0

ありがとう、私はこのアイデアに従います。私が作業していたデータフレームを変更する必要がない何かを探していました。他のPythonライブラリでも許されているかどうか知っていますか? – sissas

+0

@sissas私はしません。私の例では、変換されたデータを新しいオブジェクトに保存するので、既存のデータフレームを変更する必要はありません。元のデータフレームは、その操作では変更されません。ネームスペースに別の変数を追加したくない場合は、 'melt'関数の結果を' seaborn.boxplot'に直接パイプすることができます –

+0

もちろん、私はまだやり方を望んでいました私のデータをまったく変換する必要はありません。私はあなたに提案するアプローチに従います、ありがとう! – sissas

関連する問題

 関連する問題