如何在ipython笔记本中使用袖扣,pandas和plotly创建的绘图中添加交互式小部件并创建可共享的仪表板?

时间:2017-03-08 12:31:32

标签: python-2.7 data-visualization ipython-notebook plotly dashboard

我是情节可视化的新手。

我的示例数据集如下所示(Pandas数据框)

df => dataframe

role    priority     year       Avg_in_Hrs      Total_in_Hrs         Avg_in_Mnths         Total_in_Mnths
A        high          2003          34.44          33                      344                24323
A        medium        2005          43.4           32                      4434               24324
C       critical       2003          34.55          78                      233                5656
C       low            2004          98.55          89                      65655               5454
E      mediun          2003          34.55          45                      24243               1312

角色列包含超过50个唯一值。

我正在使用plotly的袖扣,将我的大熊猫直接绑在一起。我正在使用ipython笔记本绘制上述数据。以下是我的代码

cf.go_offline()  ## Use plotly in offline mode


indexed_df = df.set_index(['role '])

indexed_df.iplot(kind='bar', title='plot',
             filename='cufflinks/categorical-bar-chart')

上面的代码生成的图表在鼠标悬停时我可以看到值。但是,它的交互性不是很大,所以我尝试添加下拉菜单,但角色列的所有值都没有出现在我的下拉框中。

我正在以离线模式绘制它。 以下是我用于下拉菜单的代码。

cf.set_config_file(theme='pearl') ## set theme

buttons_1 = list()
offset = -0.5

for n, r in enumerate(list(indexed_df.index.unique())):
    n = n + 1
    buttons_1.append(dict(
        args=['xaxis.range', [offset, offset + 1]],
        label=r,
        method='relayout'  
    ))
    offset += 1

print "number of unique roles are = ",n   

buttons_1.append(dict(
    args=['xaxis.range', [-0.5, offset]],
    label='Reset',
    method='relayout'  
))

layout = dict(updatemenus=list([
        dict(
            x=-0.05,
            y=0.8,
            buttons=buttons_1,
            yanchor='bottom'
        )


    ])
)

indexed_df.iplot(kind='bar',title='plotl',
             filename='cufflinks/categorical-bar-chart',layout=layout,fill=True,
         xTitle='role')

如何克服上述问题?此外,我想添加搜索框来搜索我的角色值,并仅显示该值。 我想在我的所有列中添加过滤器,并以仪表板的形式与其他人共享。

由于

0 个答案:

没有答案