2016-04-26 14 views
5

Sto avendo un problema con Facetgrid: quando uso la tonalità parametro , gli X-etichette appaiono nell'ordine sbagliato e non corrispondono ai dati. Caricamento del set di dati Titanic nel ipython:parametro Hue in Seaborn FacetGrid

%matplotlib inline 
import pandas as pd 
import matplotlib.pyplot as plt 
import seaborn as sns 

titanic = sns.load_dataset("titanic") 
g = sns.FacetGrid(titanic, col='pclass', hue='survived') 
g = g.map(sns.swarmplot, 'sex', 'age') 

Facetgrid con Tonalità: Facetgrid with Hue

Da questo sembra che non ci sono più donne che uomini, ma questo non è vero.

Se ho rimuovere l'opzione tonalità, tanto sono una distribuzione corretta: non ci sono più maschi che femmine in tutte le pclasses.

g = sns.FacetGrid(titanic, col='pclass') 
g = g.map(sns.swarmplot, 'sex', 'age') 

Facetgrid senza Hue: Facetgrid without Hue

cosa sta succedendo qui? Sto usando Seaborn 0.7.0

risposta

3

Se avete intenzione di utilizzare FacetGrid con una delle funzioni di plottaggio categoriche, è necessario fornire informazioni sugli ordini, sia per dichiarare le variabili come categoriale o con i parametri order e hue_order:

g = sns.FacetGrid(titanic, col='pclass', hue='survived') 
g = g.map(sns.swarmplot, 'sex', 'age', order=["male", "female"], hue_order=[0, 1]) 

enter image description here

Tuttavia, è generalmente preferibile usare factorplot, che si prenderà cura di questa contabilità per voi e anche di risparmiare un po 'di battitura:

g = sns.factorplot("sex", "age", "survived", col="pclass", data=titanic, kind="swarm") 

enter image description here

+0

Grande, che rende chiaro. Grazie – PeerEZ