2015-01-19 7 views
5

Mi piace questo particolare grafico e la possibilità di passare una funzione alla parola chiave stat_func per tracciare rapidamente e visualizzare le relazioni tra variabili, ma c'è una cosa. Come faccio a 'spegnere' o non tracciare gli assi di distribuzione marginale?Disattivare gli assi di distribuzione marginale su jointplot utilizzando il pacchetto seaborn

Sembra bello ma a volte non voglio questa funzione.

Ad esempio, utilizzando questo codice:

import numpy as np 
import seaborn as sns 

x = (np.arange(100) + np.random.randn(100)*20 
y = (np.arange(100) + np.random.randn(100)*20 
sns.jointplot(x, y, kind='reg') 

Come posso rimuovere le sottotrame kde sul lato superiore e la mano destra degli assi principali?

+0

Beh, non è che un semplice grafico a dispersione, allora? – cel

+0

Avrebbe la riga di regressione e il suo intervallo ombreggiato per l'intervallo di confidenza specificato, nonché il coefficiente di correlazione di Pearson e il valore p in questo caso. – pbreach

+0

non è solo 'sns.regplot'? –

risposta

9

Potreste usare JointGrid direttamente:

from scipy import stats 

g = sns.JointGrid(x, y, ratio=100) 
g.plot_joint(sns.regplot) 
g.annotate(stats.pearsonr) 
g.ax_marg_x.set_axis_off() 
g.ax_marg_y.set_axis_off() 

enter image description here

+0

Grazie per questo. Mi chiedo però se è possibile farlo senza utilizzare JointGrid, in quanto non riesco a capire come utilizzare determinati tipi di trama cioè. hexbin con JointGrid. Questo commento è relativo a [questa domanda recente] (http://stackoverflow.com/questions/33288830/how-to-plot-regression-line-on-hexbins-with-seaborn). (a proposito, grazie per tutti i tuoi contributi @mwaskom. Sono straordinariamente preziosi. Grazie anche per Seaborn!) – samthebrand

+0

Cosa intendi con "fai questo?" È facile mettere il testo sopra qualsiasi trama con 'ax.text'. – mwaskom

+0

con "fai questo" intendevo rimuovere i grafici marginali. – samthebrand