【问题标题】:Two lines from different dataframes in seaborn's facetgrid来自seaborn 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。

标签: python pandas seaborn


【解决方案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()

[出]

【讨论】:

    猜你喜欢
    • 2019-03-10
    • 1970-01-01
    • 2018-03-25
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 2019-09-07
    • 2022-11-25
    • 2021-02-02
    相关资源
    最近更新 更多