seaborn facetgrid pointplot问题

Con*_*ino 2 plot facet pandas seaborn

我正在尝试用点图创建一个seaborn facetgrid.

我的数据是:

DaysIn  GroupUID    OTU_id  value
1   3.A 1   33
1   3.B 1   73.17647059
1   4.A 1   48.12903226
1   4.B 1   39.875
2   3.A 1   23.76470588
2   3.B 1   43.71428571
2   4.A 1   51.73333333
2   4.B 1   42.06896552
3   3.A 1   2
3   3.B 1   10.71428571
3   4.A 1   12.93333333
3   4.B 1   15
4   4.A 1   11.53333333
4   4.B 1   27.86206897
5   3.A 1   1.882352941
5   3.B 1   1.857142857
5   4.A 1   41.9
5   4.B 1   46.28571429
6   4.A 1   58.7
6   4.B 1   101.0344828
7   3.A 1   1.466666667
7   3.B 1   3.428571429
7   4.A 1   74.9
7   4.B 1   102.4137931
8   3.A 1   10.875
8   3.B 1   5.538461538
8   4.A 1   35.5
8   4.B 1   72.33333333
9   3.A 1   21.6
9   3.B 1   16.42857143
10  3.A 1   25.46666667
10  3.B 1   18.85714286
14  3.A 1   29
14  3.B 1   65.8
21  3.A 1   117.1428571
21  3.B 1   104.2142857
28  3.A 1   91.06666667
28  3.B 1   52.78571429
1   3.A 2   27.0625
1   3.B 2   14.23529412
1   4.A 2   32.74193548
1   4.B 2   18.625
2   3.A 2   15
2   3.B 2   23.64285714
2   4.A 2   13.1
2   4.B 2   19.75862069
3   3.A 2   7.6875
3   3.B 2   2.928571429
3   4.A 2   24.46666667
3   4.B 2   29.86206897
4   4.A 2   43.2
4   4.B 2   22.4137931
5   3.A 2   3.117647059
5   3.B 2   4.428571429
5   4.A 2   24.13333333
5   4.B 2   43.35714286
6   4.A 2   31.13333333
6   4.B 2   81.72413793
7   3.A 2   1.333333333
7   3.B 2   4.857142857
7   4.A 2   368.4666667
7   4.B 2   62.34482759
8   3.A 2   0.9375
8   3.B 2   4.384615385
8   4.A 2   0
8   4.B 2   0.333333333
9   3.A 2   0.733333333
9   3.B 2   2.357142857
10  3.A 2   3.4
10  3.B 2   1.357142857
14  3.A 2   4.3
14  3.B 2   0.4
21  3.A 2   2.357142857
21  3.B 2   6.285714286
28  3.A 2   15.93333333
28  3.B 2   9.571428571
Run Code Online (Sandbox Code Playgroud)

以下代码将生成下图:

    g = sns.FacetGrid(long_df, col='GroupUID', row='OTU_id', sharey=False, sharex=False, margin_titles=True)
    g = g.map(sns.pointplot,'DaysIn','value')
    g.add_legend()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

你可以看到这个数字几乎是完美的,除了右下方的"无"标题.

以下代码将生成下图:

    g = sns.FacetGrid(long_df, col='GroupUID', hue='OTU_id', sharey=False, sharex=False, margin_titles=True)
    g = g.map(sns.pointplot,'DaysIn','value')
    g.add_legend()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

与上面相同的问题(使用"无")并且图例未使用颜色正确呈现.

我错过了什么吗?我究竟做错了什么?

jak*_*vdp 6

这里有两个问题:None标题中我无法复制; 我怀疑你正在使用旧版本的seaborn?

这里描述图例问题:基本上它pointplot有自己的hue参数,因此您可以更改指定色调的位置:

g = sns.FacetGrid(long_df, col='GroupUID', sharey=False, sharex=False, margin_titles=True)
g = g.map(sns.pointplot,'DaysIn','value', 'OTU_id', palette='deep')
g.add_legend()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

对方的回答也建议使用factorplot,基本上结合FacetGrid,并pointplot在一个界面中:

g = sns.factorplot(x="DaysIn", y='value', hue="OTU_id",
                   col='GroupUID', data=long_df, sharex=False, sharey=False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

结果有点不同,但更好地反映了数据中的缺失值.