2016-08-15 27 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