如何在seaborn python中合并两个relplot?

3
我想使用sns.relplot将数据框的两列数据在单个图中绘制出来。数据框看起来像这样:
index   x-axis  col1    col2    group   group2
0   0   27  26  A   C
1   1   45  27  B   D
2   2   48  22  A   C
3   3   35  24  B   D
4   4   49  38  A   C
5   5   46  29  B   D
6   6   29  37  A   C
7   7   38  41  B   D
8   8   24  46  A   C
9   9   46  38  B   D
10  10  37  23  A   C

我想要将col1和col2与x轴数据一起绘制在同一个图中。 "group" 是 "hue" 的值,"group2" 是"col" 在 relplot 中的值。

我已经可以使用两个独立的relplot分别绘制这两列。

col1的绘图

col2的绘图

我希望将这两个绘图合并,以便有一个包含col1和col2的单一图形。

1个回答

0

您可以melt您的DataFrame,并使用生成的变量作为style分组:

from io import StringIO
import numpy as np
import pandas as pd
import seaborn as sns

data = """index   x-axis  col1    col2    group   group2
0   0   27  26  A   C
1   1   45  27  B   D
2   2   48  22  A   C
3   3   35  24  B   D
4   4   49  38  A   C
5   5   46  29  B   D
6   6   29  37  A   C
7   7   38  41  B   D
8   8   24  46  A   C
9   9   46  38  B   D
10  10  37  23  A   C"""

df = pd.read_csv(StringIO(data), index_col=[0], sep=" ", skipinitialspace=True)

sns.relplot(
    data=df.melt(id_vars=["x-axis", "group", "group2"], value_vars=["col1", "col2"]),
    x="x-axis", y="value", style="variable", hue="group", col="group2", kind="line")

输出: 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接