Python >> Python tutorial >  >> Python Tag >> Seaborn

Hvordan plotter man 2 søfødte jordlodder side om side?

Du får den fejl, fordi matplotlib og dets objekter er fuldstændig uvidende om søfødte funktioner.

Send dine akseobjekter (dvs. ax1 og ax2 ) til seaborn.regplot eller du kan springe over at definere dem og bruge col kwarg af seaborn.lmplot

Med dine samme importer, foruddefinerer du dine akser og bruger regplot ser sådan ud:

# create df
x = np.linspace(0, 2 * np.pi, 400)
df = pd.DataFrame({'x': x, 'y': np.sin(x ** 2)})
df.index.names = ['obs']
df.columns.names = ['vars']

idx = np.array(df.index.tolist(), dtype='float')  # make an array of x-values

# call regplot on each axes
fig, (ax1, ax2) = plt.subplots(ncols=2, sharey=True)
sns.regplot(x=idx, y=df['x'], ax=ax1)
sns.regplot(x=idx, y=df['y'], ax=ax2)

Brug af lmplot kræver, at din dataramme er ryddelig. Fortsætter fra koden ovenfor:

tidy = (
    df.stack() # pull the columns into row variables   
      .to_frame() # convert the resulting Series to a DataFrame
      .reset_index() # pull the resulting MultiIndex into the columns
      .rename(columns={0: 'val'}) # rename the unnamed column
)
sns.lmplot(x='obs', y='val', col='vars', hue='vars', data=tidy)