来自seaborn facetgrid中不同数据帧的两行
Posted
技术标签:
【中文标题】来自seaborn facetgrid中不同数据帧的两行【英文标题】:Two lines from different dataframes in seaborn's facetgrid 【发布时间】:2022-01-20 10:22:24 【问题描述】:我有两个数据框 df1
和 df2
... 我需要在同一个图中绘制来自每个数据框的两条线。我已经能够绘制一条线,但我不知道如何绘制第二条线......我有:
g = sns.FacetGrid(df1, col="S")
g.map(sns.lineplot, "Q", "M")
如何添加第二行(比例相同)但来自df2
,到g
?
【问题讨论】:
推荐的 seaborn 方式是连接数据帧,添加一个新列来指示源。然后使用hue
。
【参考方案1】:
Assign每个帧和concat它们的唯一帧ID字段。将帧id传递给FacetGrid
的hue
参数。
示例
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 的各个方面设置轴限制