来自seaborn facetgrid中不同数据帧的两行

Posted

技术标签:

【中文标题】来自seaborn facetgrid中不同数据帧的两行【英文标题】:Two lines from different dataframes in seaborn's facetgrid 【发布时间】:2022-01-20 10:22:24 【问题描述】:

我有两个数据框 df1df2... 我需要在同一个图中绘制来自每个数据框的两条线。我已经能够绘制一条线,但我不知道如何绘制第二条线......我有:

g = sns.FacetGrid(df1, col="S")
g.map(sns.lineplot, "Q", "M")

如何添加第二行(比例相同)但来自df2,到g

【问题讨论】:

推荐的 seaborn 方式是连接数据帧,添加一个新列来指示源。然后使用hue 【参考方案1】:

Assign每个帧和concat它们的唯一帧ID字段。将帧id传递给FacetGridhue参数。

示例

df1 = pd.DataFrame('Q': np.arange(10),
                    'M': np.random.randn(10),
                    'S': np.random.choice([1, 2], 10))

df2 = pd.DataFrame('Q': np.arange(10),
                    'M': np.random.randn(10),
                    'S': np.random.choice([1, 2], 10))

data = pd.concat([df1.assign(frame='df1'),
                  df2.assign(frame='df2')])

g = sns.FacetGrid(data, col="S", hue='frame')
g.map(sns.lineplot, "Q", "M")
plt.legend()

[出]

【讨论】:

以上是关于来自seaborn facetgrid中不同数据帧的两行的主要内容,如果未能解决你的问题,请参考以下文章

使用 Seaborn FacetGrid 从数据框中绘制误差线

在 Seaborn/其他库中聚合的 FacetGrid 图

在 seaborn facetgrid 的各个方面设置轴限制

Seaborn Facetgrid 中热图的变化

Python Seaborn:在 Facetgrid 中绘制多个 distplot

在 seaborn 中使用 FacetGrid 为所有方面重复 x 轴标签