我使用plotly的袖扣绘制了交互式条形图(使用pandas系列)。在离线模式下
以下是我用于绘图的代码:
cf.go_offline() ## Use plotly in offline mode
df.iplot(kind='bar', xTitle = 'roles',yTitle='count', title='Bar Plot:', filename='cufflinks/categorical-bar-chart')
此处 df 是我的系列,角色是我的索引。(x轴)
Priority Year Avg_in_hrs Total_in_Hrs
Role
A Medium 2015 34.4 34
B Low 2014 33.55 123
C High 2014 3 4566
D Low 2015 12 3666
现在我想为我的x轴标签添加下拉列表和搜索框,例如角色,这是我的pandas dataframe列有很多值,这样我就可以搜索并只查看该图的情节特别的角色。我该如何添加?
此外,如何与其他人共享这些交互式图表,例如使用Web应用程序,以便我可以保持交互性?
由于
答案 0 :(得分:1)
您可以移动yaxis
range
,具体取决于所选的下拉菜单,即,如果用户选择A
,则仅显示A
特定的范围。
代码定义了每个index
的下拉条目和一个重置图表的下拉条目。
import pandas as pd
import cufflinks as cf
cf.go_offline()
roles = 'ABCDE'
prios = ['Medium', 'Low', 'High', 'Low', 'High']
years = [2015, 2014, 2014, 2015, 2014]
avgs = [34.4, 33.55, 3, 12, 15]
total_hours = [34, 123, 4566, 3666, 4000]
data = dict()
data['Prio'] = prios
data['Year'] = years
data['average'] = avgs
data['hours'] = total_hours
df = pd.DataFrame(data)
df.index = list(roles)
df.index.names = ['Role']
buttons = list()
offset = -0.5
for r in roles:
buttons.append(dict(
args=['xaxis.range', [offset, offset + 1]],
label=r,
method='relayout'
))
offset += 1
buttons.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,
yanchor='top'
)
])
)
df.iplot(kind='bar', xTitle = 'roles',yTitle='count', title='Bar Plot:', filename='cufflinks/categorical-bar-chart', layout=layout)