如何在Seaborn中叠加两个图表?

Dav*_*jad 24 python seaborn

如何在Seaborn中叠加两个图表?我的数据中有两列我想将它们放在同一个图表中.我怎样才能保留两个图的标签.

Pau*_*l H 36

在单个Axes上运行的seaborn函数可以将一个作为参数.

例如,文档seaborn.kdeplot包括:

ax : matplotlib axis, optional
    Axis to plot on, otherwise uses current axis
Run Code Online (Sandbox Code Playgroud)

所以,如果你这样做:

df = function_to_load_my_data()
fig, ax = plt.subplots()
Run Code Online (Sandbox Code Playgroud)

然后你可以这样做:

seaborn.kdeplot(df['col1'], ax=ax)
seaborn.kdeplot(df['col2'], ax=ax)
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,唯一的缺点是两个图表都没有标签。 (2认同)
  • @ DavoudTaghawi-Nejad你有'ax`对象,所以你可以做任何事情,真的. (2认同)
  • @famargar https://matplotlib.org/tutorials/intermediate/legend_guide.html (2认同)

Dav*_*jad 17

一种解决方案是引入一个二轴:

    fig, ax = plt.subplots()
    sb.regplot(x='round', y='money', data=firm, ax=ax)
    ax2 = ax.twinx()
    sb.regplot(x='round', y='dead', data=firm, ax=ax2, color='r')
    sb.plt.show()
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

  • 在这种情况下,有一个图例可能会有所帮助。为此,您可以在seaborn函数中使用标签参数,但显然您需要在每个绘图函数之后调用 plt.legend() (2认同)