2016-08-15 5 views
0

seaborn.stripplot()を使用してデータポイントの複数の列をプロットする方法は、これらのデータに「カテゴリ」のラベルがない場合、少し混乱します。次のようにカテゴリのない散布図を非分類データでプロットするにはどうすればよいですか?

たとえば、ユーザーがtipsデータセットで、「グループ化された」散布図をプロットすることができます

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

import seaborn as sns 

tips = sns.load_dataset("tips") # internal dataset 

print(tips) 

    total_bill tip  sex smoker day time size 
0   16.99 1.01 Female  No Sun Dinner  2 
1   10.34 1.66 Male  No Sun Dinner  3 
2   21.01 3.50 Male  No Sun Dinner  3 
3   23.68 3.31 Male  No Sun Dinner  2 
4   24.59 3.61 Female  No Sun Dinner  4 
5   25.29 4.71 Male  No Sun Dinner  4 
....  .....  .....  ..... 

次のように私たちは散布図を生成することにより、カテゴリday、で一緒にグループ化された測定があります。

sns.stripplot(x="day", y="total_bill", data=tips) 

enter image description here

ここで、この「グループ化されたscatterpl各列のデータを有する非カテゴリデータとOTフォーマット」プロット:

df = pd.read_csv("my_data.csv") 

df 

     total_bill_A total_bill_B total_bill_C total_bill_D  
0  16.99   21.01   15.99   14.50 
1  10.34   21.66   12.99   16.50 
2  21.01   23.50   7.25   17.50 
3  23.68   23.31   9.99   12.50 
4  24.59   23.61   10.00   15.50 
5  25.29   24.71   11.00   19.50 
....    .... 

ここでy軸はpriceであり、x軸はこれらの列のそれぞれ、total_bill_Atotal_bill_Btotal_bill_C、及びtotal_bill_Dなければなりません、上記の木曜日、金曜日、土曜日、日曜日に似ています。

どうすればこれらのようなものをプロットできますかseaborn?これはseaborn.stripplot()で可能ですか?

答えて

3

あなたは、データフレームをmeltし、次のようにstripplotに適用するに応じてパラメータに名前を付けることができます。

df_strip = pd.melt(df, var_name='total_bill', value_name='price') 
sns.stripplot(x="total_bill", y="price", data=df_strip) 

Image

+1

はこのいただきありがとうございます!これは完全に動作します – ShanZhengYang

関連する問題