如何使用 Seaborn 并排绘制熊猫数据框的多组列

Posted

技术标签:

【中文标题】如何使用 Seaborn 并排绘制熊猫数据框的多组列【英文标题】:How to plot multiple groups of columns of a pandas dataframe side by side using Seaborn 【发布时间】:2018-11-21 22:22:37 【问题描述】:

数据针对多个参与者 (p) 重复,每个参与者都有几个试验,其中一半属于两个 bin_trials(1 和 2)。这只是一个小样本。我知道最后一列丢失了,这个问题的数据太多了。

       p   tr  bin_trial  cor_gaze_perc  cor_gaze_key_perc  
0      2    1          1           1.00               1.00   
1      2    2          1           1.00               1.00   
2      2    3          1           0.00               0.00   
3      2    4          1           0.50               0.50   
4      2    5          1           0.75               0.75   
5      2    6          1           0.50               0.50   
6      2    7          1           0.50               0.50   
7      2    8          1           0.25               0.25   
8      2    9          1           1.00               1.00   
9      2   10          1           0.50               0.50   
10     2   11          1           1.00               1.00   
11     2   12          1           1.00               1.00   
12     2   13          1           1.00               1.00   
13     2   14          1           1.00               1.00   
14     2   15          1           0.50               0.50   
15     2   16          2           1.00               1.00   
16     2   17          2           1.00               1.00   
17     2   18          2           1.00               1.00   
18     2   19          2           0.75               0.75   
19     2   20          2           1.00               1.00   
20     2   21          2           1.00               1.00   
21     2   22          2           1.00               1.00   
22     2   23          2           0.60               0.40   
23     2   24          2           1.00               1.00   
24     2   25          2           0.00               0.00   
25     2   26          2           0.00               0.00   
26     2   27          2           1.00               1.00   
27     2   28          2           0.00               0.00   
28     2   29          2           1.00               1.00   
29     2   30          2           0.50               0.50   

我想实现一个类似这样的情节:

我看到这个先前的答案Seaborn multiple barplots 建议使用melt 然后使用参数hue。但是,如果我这样做,我需要单独计算 ci。更不用说这似乎有点矫枉过正,因为当以合适的方式传递参数时,库已经可以聚合数据并自动计算 ci。

我知道,作为最后的手段,我可​​以使用 pivot_table 手动聚合数据并计算 ci。

所以我的问题归结为hue 方法是唯一的方法吗?或者有没有一种方法可以根据给定的数据使用列,并在绘图时动态计算 ci?

【问题讨论】:

什么是ci?我不太明白为什么hue 不适合你。但是,如果您需要进一步的帮助,您可以简单地提供 minimal reproducible example。 @ImportanceOfBeingErnest: ci->置信区间,实际上是 API 调用。仅当我按如下方式使用 melt 时,色调才有效: tt2 = pd.melt(tt, id_vars=['p', 'tr', 'bin_trial'], var_name="acc_type", value_name="acc") 【参考方案1】:

经过大量搜索后,唯一的方法是通过融化。如果有人想要更完整的答案,请给我留言,我会添加融化代码。

这一切都归结为seaborn 总是想要单列中的数据。有时需要explode 数据来实现这一点。

【讨论】:

以上是关于如何使用 Seaborn 并排绘制熊猫数据框的多组列的主要内容,如果未能解决你的问题,请参考以下文章

如何在 seaborn 中并排绘制两个计数图?

如何在seaborn中将多个图形绘制为数据框的子图和多列?

如何绘制熊猫数据框的多列

如何使用点绘制熊猫数据框的两列

如何为来自同一个熊猫数据框的所有不同列制作单独的 Seaborn kde 图?

Seaborn通过多个groupby绘制熊猫数据框