python - 如何在 seaborn python 中组合两个 relplots?

我想使用 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/

相关文章:

python - 在pygame中检测键盘输入时只有某些键起作用

gitlab - 任何人都可以发布具有外部子模块的 GitLab CI 的工作示例吗?

jenkins - 如何在参数化的 Jenkins 管道项目中检索作业名称

reactjs - 在 Kafka 上 react GUI

regex - 如何按名称访问捕获组?

r - ChordDiagram 切断长标签

ios - 使用 `xcodebuild` 归档时 CompileSwift 正常 arm64

php - 自定义集合操作和IRI转换问题

c++ - 配置:错误:C++ 预处理器 "/lib/cpp"完整性检查失败

php - 尽管使用了有效 key ,Gnupg 仍给出 "get_key failed"