如何使用误差线绘制多条线

问题描述

我有一个数据帧

df =
f1.  f2.  f3.  f4.  f5.  g
1.    2.  3.   4.   1.   0 
2.    4.  6.   8.   7.   0
1.    2.  3.   6.   1.   1 
5.    4.  6.   8.   7.   1
9.    2.  7.   5.   1.   0 
8.    4.  2.   4.   5.   1
我想画一个带误差带的线条图,其中每一行都是另一个样本,色调由列g决定,值是数字,X轴是列(f1,f2,f3,f4,f5) 这可能吗?


解决方案

对于这些问题,您经常需要使用.melt()

将数据帧转换为长结构
import pandas as pd
import seaborn as sns
df1 = df.melt(id_vars='g')
sns.lineplot(data=df1, x='variable', y='value', hue='g')
df1

Out[1]: 
    g variable  value
0   0      f1.    1.0
1   0      f1.    2.0
2   1      f1.    1.0
3   1      f1.    5.0
4   0      f1.    9.0
5   1      f1.    8.0
6   0      f2.    2.0
7   0      f2.    4.0
8   1      f2.    2.0
9   1      f2.    4.0
10  0      f2.    2.0
11  1      f2.    4.0
12  0      f3.    3.0
13  0      f3.    6.0
14  1      f3.    3.0
15  1      f3.    6.0
16  0      f3.    7.0
17  1      f3.    2.0
18  0      f4.    4.0
19  0      f4.    8.0
20  1      f4.    6.0
21  1      f4.    8.0
22  0      f4.    5.0
23  1      f4.    4.0
24  0      f5.    1.0
25  0      f5.    7.0
26  1      f5.    1.0
27  1      f5.    7.0
28  0      f5.    1.0
29  1      f5.    5.0

相关文章