来自 seaborn 的 facetgrid 中不同数据框的两条线

Two lines from different dataframes in seaborn's facetgrid

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

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

如何从 df2 添加第二条线(比例相同)到 g

Assign a unique frame id field to each frame and concat 他们。将帧 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()

[出局]