python plotly:在dataframe中使用列的框打印

python plotly:在dataframe中使用列的框打印,python,pandas,plotly,boxplot,Python,Pandas,Plotly,Boxplot,我喜欢使用plotly,并希望为我的数据绘制箱线图 在他们的网站上,我做了以下工作: 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(

我喜欢使用plotly,并希望为我的数据绘制箱线图

在他们的网站上,我做了以下工作:

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)
我面临的挑战是,我不知道“跟踪”的总数是未知的。例如:

titanic = pd.read_csv("http://biostat.mc.vanderbilt.edu/wiki/pub/Main/DataSets/titanic3.csv")
我想画一个箱线图,按“登上”列,一个“票价”列的箱线图。由于“已装载”中唯一值的总数未知,我不想硬编码它

有人知道我怎样才能在plotly中正确地做到这一点吗


谢谢大家!

您可以在
中循环您的唯一值,并为每个值添加跟踪。在这种情况下,还有需要单独处理的
nan

for embarked in titanic.embarked.unique():


非常感谢。我没有看到任何显示,因为它返回空白。告诉你,我在jupyter笔记本里。奇怪。我还用了一个Jupyter笔记本,刚刚用了一个新的笔记本试过。为什么要离线呢?我阅读了文档,但它实际上只关注发生了什么以及为什么会更好。它占用更少的内存吗?我认为在客户端这并不重要,我只是通常不需要上传或共享我的绘图,这就是为什么我使用脱机。好的,我知道了,这样它就不会在线加载任何内容,我也不必处理隐私设置。
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)