Plotting two distributions in seaborn.jointplot

前端 未结 3 1715
忘了有多久
忘了有多久 2020-12-09 19:36

I have two pandas dataframes I would like to plot in the same seaborn jointplot. It looks something like this (commands are don in an IPython shell; ipyth

3条回答
  •  [愿得一人]
    2020-12-09 20:05

    Here is one way to do it by modifying the underlying data of sns.JointGrid.

    import pandas as pd
    import numpy as np
    import matplotlib.pyplot as plt
    import seaborn as sns
    
    # simulate some artificial data
    # ========================================
    np.random.seed(0)
    data1 = np.random.multivariate_normal([0,0], [[1,0.5],[0.5,1]], size=200)
    data2 = np.random.multivariate_normal([0,0], [[1,-0.8],[-0.8,1]], size=100)
    
    # both df1 and df2 have bivaraite normals, df1.size=200, df2.size=100
    df1 = pd.DataFrame(data1, columns=['x1', 'y1'])
    df2 = pd.DataFrame(data2, columns=['x2', 'y2'])
    
    
    # plot
    # ========================================   
    graph = sns.jointplot(x=df1.x1, y=df1.y1, color='r')
    
    graph.x = df2.x2
    graph.y = df2.y2
    graph.plot_joint(plt.scatter, marker='x', c='b', s=50)
    

    enter image description here

提交回复
热议问题