2015-04-14 20 views
18

Mi chiedo se c'è un modo per disattivare l'adattamento lineare in Seaborn lmplot o se esiste una funzione equivalente che produce solo il diagramma a dispersione. Certo, potrei usare anche matplotlib, tuttavia trovo la sintassi e l'estetica di Seaborn piuttosto allettanti. Per esempio,. Voglio tracciare il diagramma seguenteScatterplot senza adattamento lineare in seaborn

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

Senza l'adattamento lineare in questo modo:

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

+2

Diversi approcci con gli stili panda e seaborn [qui] (http://stackoverflow.com/questions/22543208/ggplot-styles-in-python) - è possibile utilizzare il plottaggio seaborn come contesto mentre si lavora in matplotlib, ad esempio . – cphlewis

+0

Ho visto il tuo rappresentante a 6999 quindi non ho potuto fare a meno di votare la tua domanda;) – derchambers

+0

Haha, oltre a questo, spero che anche il Q & A sia stato di aiuto. Mi ricorda che stavo programmando di essere un po 'più attivo nel 2018 :) – Sebastian

risposta

37

impostato fit_reg argomento per False:

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

Grazie, ho in qualche modo guardato solo i parametri di 'lmplot' e non sapevo che stava chiamando' regplot'. Problema risolto :) – Sebastian