我想使用 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
在这里,我想针对 x 轴数据绘制 col1 和 col2。 'group' 是 relplot 中 'col' 的 'hue' 和 'group2' 的值。
我可以使用两个单独的 relplots 分别绘制两列。
col1 的情节
col2 的情节
我想合并这两个图,使一个图包含 col1 和 col2。
最佳答案
您可以 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")
输出:
https://stackoverflow.com/questions/58034473/