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')
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')
ensemble fit_reg
argument à False
:
sns.lmplot("x", "y", data=df, hue='dataset', fit_reg=False)
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')