【问题标题】:ipywidgets graph widget implementationipywidgets 图形小部件实现
【发布时间】:2016-02-16 15:02:20
【问题描述】:

美好的一天

我整天都在做这件事。我正在尝试将小部件添加到我的 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)

file sample

【问题讨论】:

  • 能否提供excel文件(或示例文件)?
  • 嗨@nluigi,请找到附有虚拟数据的样本。
  • 目前您检索投诉的数量及其状态,并显示哪些是打开的、关闭的或正在进行的,并将其绘制在饼图中。你想让什么互动?应该怎么办?
  • @nluigi 感谢您的回复和对这么晚的回复表示歉意,工作一直很忙。您提供的这个解决方案很有用,但我更多的是考虑一个会影响实际值的过滤器影响图表显示的内容,即“低”、“中”或“高”。我知道这在默认情况下反映在下面的图表中,但不是在所有图表类型上,它对灵活性也很有用。
  • 没看懂,能举个例子吗?

标签: python jupyter plotly jupyter-notebook ipywidgets


【解决方案1】:

我认为您正在寻找这种类型的互动,对吧?

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)

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-04-26
    • 2019-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多