1

再会

我整天都在做这件事。我正在尝试将小部件添加到我的 Jupyter(ipython) 笔记本上的笔记本中。下面是我的代码,它在我的脑海中是有意义的,但它没有填充任何东西。我正在尝试通过小部件控制 StatusesList 中的值列表,以便更改填充的图形。请帮忙。

from plotly import __version__
from plotly.offline import download_plotlyjs, init_notebook_mode, iplot
import plotly.plotly as py
import plotly.graph_objs as go
from plotly.graph_objs import *
import numpy as np
import cufflinks as cf
init_notebook_mode()
cf.go_offline()
import pandas as pd
cf.set_config_file(theme='pearl')
from __future__ import print_function
from ipywidgets import interact, interactive, fixed
import pandas as pd
import ipywidgets as widgets
from IPython.display import display

df = pd.read_excel("C:\Users\UserName\Downloads\Complaints Management.xlsx")
df_status = df[['Status', 'Member Number']].groupby('Status').count()

StatusesList = df_status.index.tolist()

GragphValueList = df_status["Member Number"].tolist()
# w = Output()

def f(x):
    x = StatusesList
    return x
    interact(f, x = StatusesList)


    fig_status = {
    'data': [{'labels': x,
    'values': GragphValueList,
    'type': 'pie'}],
    'layout': {'title': 'Complaints by status'}
    }

    iplot(fig_status)

文件样本

4

1 回答 1

0

我认为您正在寻找这种类型的交互性,对吗?

by_list = ['Priority', 'Status', 'Deadline', 'Query Category'] #df.keys().tolist()

@interact(x = by_list )
def f(x):
    df_data = df[[x, 'Member Number']].groupby(x).count()
    fig_status = {
    'data': [{'labels': df_data.index.tolist(),
    'values': df_data["Member Number"].tolist(),
    'type': 'pie'}],
    'layout': {'title': 'Complaints by %s' % x}
    }

    iplot(fig_status)

您可以by_list通过添加或删除与 Ex​​cel 中的字段对应的字符串来控制。也可以使用所有字段,df.keys().tolist()但这可能有点不稳定。

PS。感谢您向我展示情节,我以前没有听说过/看过它,但它可以产生一些不错的(交互式)统计图!

在此处输入图像描述 在此处输入图像描述

于 2016-03-09T11:50:09.697 回答