2016-04-26 7 views
5

Я имею проблему с Facetgrid: когда я использую оттенок параметр, х-метки отображаются в неправильном порядке и не совпадают с данными. Загрузка набора данных Титаника в IPython:параметр Hue в Сиборн 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 с Hue: Facetgrid with Hue

Из этого, кажется, что есть больше женщин, чем мужчин, но это не так.

Если я теперь удалить опцию оттенок, то я получаю правильное распределение: есть больше мужчин, чем женщин во всех pclasses.

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

Facetgrid без Hue: Facetgrid without Hue

Что здесь происходит? Я использую Сиборн 0.7.0

ответ

3

Если вы собираетесь использовать FacetGrid с одним из категорических функций черчения, вы должны предоставить информацию о заказе, либо объявить переменные как категорический или с параметрами order и 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

Однако, как правило, предпочтительно использовать factorplot, который будет заботиться об этой бухгалтерии для вас, а также сэкономить немного набрав:

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

enter image description here

+0

Отлично, что проясняет. благодаря – PeerEZ

Смежные вопросы