Как совместить два релплота в морском питоне? - PullRequest
2 голосов
/ 20 сентября 2019

Я хотел бы построить два столбца данных на одном графике, используя 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.

Я могу построить два столбца отдельно, используя два отдельных повторных графика.

График col1

График col2

Я хотел бы объединить два графика так, чтобы был один отдельный график, содержащий col1 и col2.

1 Ответ

0 голосов
/ 20 сентября 2019

Вы можете 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")

Выход: enter image description here

...