2017-09-06 1 views
1

Je profite de l'intrigue et j'ai voulu tracer des boîtes à moustaches pour mes données.Python plotly: boîte de graphique en utilisant la colonne dans la trame

De leur site web, je fais ce qui suit:

import plotly.plotly as py 
import plotly.graph_objs as go 

import numpy as np 

y0 = np.random.randn(50) 
y1 = np.random.randn(50)+1 

trace0 = go.Box(
    y=y0, 
    name = 'Sample A', 
    marker = dict(
     color = 'rgb(214, 12, 140)', 
    ) 
) 
trace1 = go.Box(
    y=y1, 
    name = 'Sample B', 
    marker = dict(
     color = 'rgb(0, 128, 128)', 
    ) 
) 
data = [trace0, trace1] 
py.iplot(data) 

Le défi que j'ai est que je ne sais pas le nombre total de « trace » est inconnue. Par exemple:

titanic = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv") 

Je voudrais tracer un boxplot, par colonne « embarqué », une boxplot de la colonne « tarif ». Puisque le nombre total de valeurs uniques dans 'embarqué' est inconnu, je ne veux pas le coder en dur.

Est-ce que quelqu'un sait comment je peux le faire correctement dans l'intrigue?

Merci!

Répondre

1

Vous pouvez parcourir vos valeurs uniques dans embarked et ajouter une trace pour chacune d'elles. Dans ce cas, il y a également nan qui nécessite un traitement séparé.

for embarked in titanic.embarked.unique(): 

enter image description here

import plotly 
plotly.offline.init_notebook_mode() 
import pandas as pd 
import numpy as np 

titanic = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv") 

traces = list() 
for embarked in titanic.embarked.unique(): 
    if str(embarked) == 'nan': 
     traces.append(plotly.graph_objs.Box(y=titanic[pd.isnull(titanic.embarked)].fare, 
              name = str(embarked) 
              ) 
        ) 
    else: 
     traces.append(plotly.graph_objs.Box(y=titanic[titanic.embarked == embarked].fare, 
              name = embarked 
              ) 
        ) 
plotly.offline.iplot(traces) 
+0

Merci. Je ne vois rien s'afficher car il revient vide. Pour info je suis dans le cahier de jupyter. –

+0

Bizarre. J'utilisais aussi un bloc-notes Jupyter et je l'ai juste essayé avec un nouveau carnet. –

+0

Pourquoi faire la chose hors ligne? J'ai lu la documentation, mais elle se concentre uniquement sur ce qui se passe et c'est pourquoi c'est mieux. Est-ce qu'il prend moins de RAM? –