web-dev-qa-db-fra.com

Nuage de points sans ajustement linéaire en mer

Je me demande s'il existe un moyen de désactiver l'ajustement linéaire dans le lmplot de seaborn ou s'il existe une fonction équivalente qui produit simplement le nuage de points. Bien sûr, je pourrais également utiliser matplotlib, cependant, je trouve la syntaxe et l'esthétique de seaborn assez attrayantes. Par exemple,. Je veux tracer l'intrigue suivante

import seaborn as sns
sns.set(style="ticks")

df = sns.load_dataset("anscombe")
sns.lmplot("x", "y", data=df, hue='dataset')

enter image description here

Sans l'ajustement linéaire comme ceci:

from itertools import cycle
import numpy as np

import matplotlib.pyplot as plt

color_gen = cycle(('blue', 'lightgreen', 'red', 'purple', 'gray', 'cyan'))

for lab in np.unique(df['dataset']):
    plt.scatter(df.loc[df['dataset'] == lab, 'x'], 
                df.loc[df['dataset'] == lab, 'y'], 
                c=next(color_gen),
                label=lab)

plt.legend(loc='best')

enter image description here

23
user2489252

ensemble fit_reg argument à False:

sns.lmplot("x", "y", data=df, hue='dataset', fit_reg=False)
43
HYRY

Cela ne répond pas directement à la question, mais peut aider ceux qui trouvent ici un moyen de faire un simple vieux nuage de points.
À partir de la version 0.9. seaborn a maintenant une méthode scatterplot .

import seaborn as sns
sns.set(style="ticks")

df = sns.load_dataset("anscombe")
sns.scatterplot("x", "y", data=df, hue='dataset')

enter image description here

1
Michael Hall