Python 使用plotly和袖扣获得分组盒图的任何简单方法?

Python 使用plotly和袖扣获得分组盒图的任何简单方法?,python,plot,plotly,Python,Plot,Plotly,现在,对于散点图,你们可以写 df.iplot(kind='scatter', x='myX',y='myY',categories='myGroup') 假设df是包含这些变量的数据帧。 但是,如果我改为 df.iplot(kind='box', x='myX',y='myY',categories='myGroup') 它将以散点图结束。是否在方框图中不支持类别设置,或者我遗漏了什么?我也在寻找解决方案,但找不到任何帮助。但是我找到了一个黑客;例如,kaggle提供的流行泰坦尼克号数据集

现在,对于散点图,你们可以写

df.iplot(kind='scatter', x='myX',y='myY',categories='myGroup')
假设
df
是包含这些变量的数据帧。 但是,如果我改为

df.iplot(kind='box', x='myX',y='myY',categories='myGroup')

它将以散点图结束。是否在方框图中不支持
类别
设置,或者我遗漏了什么?

我也在寻找解决方案,但找不到任何帮助。但是我找到了一个黑客;例如,kaggle提供的流行泰坦尼克号数据集。按乘客等级划分的年龄方框图:

import cufflinks as cf
cf.go_offline()

box_age = train[['Pclass', 'Age']]
box_age.pivot(columns='Pclass', values='Age').iplot(kind='box')
您可以在一个步骤中完成,但在两个步骤中(或通过将透视表存储在对象中的三个步骤),步骤代码看起来很干净。所以,第二步我要旋转数据。因此,每行将有1个非空值。iplot可以处理空值。我与seaborn和iplot进行了测试,他们给了我相同的答案。所以它是可靠的。如果你想两者都试一下的话。以下是seaborn代码:

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

plt.figure(figsize=(12, 7))
sns.boxplot(x='Pclass', y='Age', data=train, palette='winter')

注意:我使用的是Jupyter笔记本电脑,这就是为什么有
%matplotlib内联

您可以使用pivot表来解决您的问题

火车[['Pclass','Age']].pivot(columns='Pclass',values='Age').iplot(kind='box')

上面的代码将首先创建一个透视表,并为表中的每一列构建一个方框图