使用plotly和cufflinks获得分组框图的任何简单方法?

时间:2017-06-27 03:12:43

标签: python plot plotly

我现在认为对于散点图,您可以编写类似

的内容
<?xml version="1.0" encoding="UTF-8"?>
<Context allowCasualMultipartParsing="true">
</Context>

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

,这将无效
df

它将以散点图结束。是否在框图中不支持df.iplot(kind='box', x='myX',y='myY',categories='myGroup') 设置,或者我错过了什么?

2 个答案:

答案 0 :(得分:0)

我也在寻找那个解决方案,但找不到任何帮助。但我能找到一个黑客;例如,在来自kaggle的流行泰坦尼克数据集的情况下。乘客班的年龄框图:

import cufflinks as cf
cf.go_offline()

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

您可以一步完成但两步(或通过将数据透视表存储在对象中三步),步骤代码看起来很干净。所以第二步我转动数据。因此,每行将有1个非null 值。 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 Notebook,这就是%matplotlib inline

的原因

答案 1 :(得分:0)

您可以使用数据透视表来解决您的问题

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

上面的代码将首先创建一个数据透视表,并为表中存在的每一列构建一个箱线图