如何使用 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 并排绘制熊猫数据框的多组列的主要内容,如果未能解决你的问题,请参考以下文章