2016-02-09 18 views
6

Sto provando a tracciare un "factorplot" in stile barra per alcuni dati, quindi tracciare uno "pointplot" in stile punto normale per il mio adattamento di quei dati su di esso. Così, per la trama di dati posso semplicemente fare:Più grafici sullo stesso grafico in seaborn

sns.factorplot(x='x',y='yData',data=dataFrame,kind='bar') 

E per la trama modello posso semplicemente fare:

sns.factorplot(x='x',y='yModel',data=dataFrame,kind='point') 

Il problema è che se poi faccio:

sns.plt.show() 

Ottengo 2 figure separate invece di una sola. C'è un modo semplice per dire a Seaborn di tracciarli sullo stesso grafico?

+0

Non è sicuro che sia il bug della soluzione se si esegue 'g = sns.factorplot (x = 'x', y = 'yData', data = dataFrame, kind = 'bar')', quindi 'g' sarà un 'FacetGrid', forse puoi usare questi assi (' g.ax') per il prossimo factorplot? – mgc

+2

Possibile duplicato di [Plottaggio con Seaborn usando l'interfaccia orientata agli oggetti matplotlib] (http://stackoverflow.com/questions/23969619/plotting-with-seaborn-using-the-matplotlib-object-oriented-interface) – mwaskom

+0

@mgc Non penso che sia possibile per un fattore di trama – ticster

risposta

5

Come accennato nei commenti, this answer spiega l'architettura di base che rappresenta il motivo per cui si vede che il comportamento (due figure differenti), ma è possibile dare una risposta più specifica alla tua domanda:

Il tutorial spiega che factorplot è principalmente una funzione di convenienza che combina FacetGrid con un numero di funzioni a livello di assi per disegnare grafici categoriali che condividono un'API. Poiché non stai utilizzando le opzioni di sfaccettatura di factorplot, tutto ciò che devi fare è sostituire sns.factorplot(..., kind="bar") con sns.barplot(...) e sns.factorplot(..., kind="point") con sns.pointplot(...).

Problemi correlati