非分类数据框,用于海底绘图箱图,sw mpl,泥火等的分类数据

时间:2016-08-11 14:09:28

标签: python pandas seaborn

我与分类数据图混淆了,这可能是因为我真的不理解这个概念。

我有一个数据框:

      A         B         C
 0  1.438161 -0.210454 -1.983704
 1 -0.283780 -0.371773  0.017580
 2  0.552564 -0.610548  0.257276
 3  1.931332  0.649179 -1.349062
 4  1.656010 -1.373263  1.333079
 5  0.944862 -0.657849  1.526811

我可以使用seaborn轻松地绘制每个列的箱线图:

sns.boxplot(df)

然而,swillots,stripplots不起作用,我想是因为需要分类数据?

     value   indx       
   1.438161    A
  -0.283780    A
       ...
   0.552564    B
   1.931332    B
       ...
   1.656010    C
   0.944862    C

有没有一种非常简单快捷的方法可以做到这一点,我不知道?

https://stanford.edu/~mwaskom/software/seaborn/generated/seaborn.swarmplot.html

2 个答案:

答案 0 :(得分:2)

我认为你需要参数data

sns.boxplot(data=df)

Docs

  

data:DataFrame,数组或数组列表,可选

     

用于绘图的数据集。如果x和y不存在,则将其解释为宽格式。否则预计它将是长形的。

graph

答案 1 :(得分:1)

IIUC,您可以使用melt将其中一个变量转换为分类格式,以帮助绘制swarmplotsstripplots

In [3]: df_sns = pd.melt(df, value_vars=['A', 'B', 'C'])

In [4]: df_sns
Out[4]: 
   variable     value
0         A  1.438161
1         A -0.283780
2         A  0.552564
3         A  1.931332
4         A  1.656010
5         A  0.944862
6         B -0.210454
7         B -0.371773
8         B -0.610548
9         B  0.649179
10        B -1.373263
11        B -0.657849
12        C -1.983704
13        C  0.017580
14        C  0.257276
15        C -1.349062
16        C  1.333079
17        C  1.526811

In [5]: sns.swarmplot(x='variable', y='value', data=df_sns)
Out[5]: <matplotlib.axes._subplots.AxesSubplot at 0x268db2a6e10>

enter image description here