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