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

时间:2015-10-02 02:00:30

标签: python seaborn

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

4 个答案:

答案 0 :(得分:30)

对单个Axes进行操作的seaborn函数可以将一个作为参数。

例如,seaborn.kdeplot的文档包括:

ax : matplotlib axis, optional
    Axis to plot on, otherwise uses current axis

所以,如果你这样做了:

df = function_to_load_my_data()
fig, ax = plt.subplots()

然后你可以这样做:

seaborn.kdeplot(df['col1'], ax=ax)
seaborn.kdeplot(df['col2'], ax=ax)

答案 1 :(得分:16)

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

    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()

enter image description here

答案 2 :(得分:1)

数据是关于私人与公共拼贴数据,但有效,我们可以看到我们将所有全局参数加载到seaborn对象,然后我们将图表映射到同一个窗格。

import seaborn as sns

import matplotlib.pyplot as plt

import pandas as pd


df = pd.read_csv('College_Data',index_col=0)

g = sns.FacetGrid(df,hue='Private',palette='coolwarm',size=6,aspect=2)

g.map(plt.hist,'Outstate',bins=20,alpha=0.7)

See Chart

答案 3 :(得分:-4)

最简单的例子是:

import seaborn as sns

import matplotlib.pyplot as plt

data1 = [1, 2, 3, 4, 5]

data2 = [1, 1.1, 1.3, 4, 4.1]

def plotter():
    plt.plot(data1)
    plt.plot(data2)
    plt.show()


plotter()