有什么简单的方法可以使用plotly和袖扣获得分组箱形图吗?

Lih*_*aoZ 2 python plot plotly

我现在对于散点图,你可以写类似的东西

df.iplot(kind='scatter', x='myX',y='myY',categories='myGroup')
Run Code Online (Sandbox Code Playgroud)

假设这df是一个包含这些变量的数据框。但是,如果我更改为,这将不起作用

df.iplot(kind='box', x='myX',y='myY',categories='myGroup')
Run Code Online (Sandbox Code Playgroud)

它最终会得到一个散点图。categories箱线图尚不支持该设置还是我错过了某些内容?

Dat*_*cho 5

我也在寻找该解决方案,但找不到任何帮助。但我找到了一个技巧;例如,来自 kaggle 的流行泰坦尼克号数据集。按乘客类别划分的年龄箱线图:

import cufflinks as cf
cf.go_offline()

box_age = train[['Pclass', 'Age']]
box_age.pivot(columns='Pclass', values='Age').iplot(kind='box')
Run Code Online (Sandbox Code Playgroud)

您可以一步完成,但两步(或通过将数据透视表存储在对象中的三步)步骤代码看起来很干净。所以第二步我正在旋转数据。因此每行将有 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')
Run Code Online (Sandbox Code Playgroud)

注意:我使用的是 Jupyter Notebook,这就是为什么有%matplotlib inline