# importimportpandasaspdimportnumpyasnpimportplotly.graph_objsasgofromplotly.offlineimportdownload_plotlyjs,init_notebook_mode,plot,iplot
init_notebook_mode(connected=True)#%qtconsole# sample dataField=['Police','Research','Police','Banking','Healthcare','Research','Healthcare','Banking']Issue=['Budget cuts','Budget cuts','Time consuming','Lack of oversight','Lack of support','Bureaucracy','Bureaucracy','Mistrust']# Put the lists in a pandas dataframe for# easy grouping and indexingdf=pd.DataFrame([Field,Issue]).T
df.columns=['Field','Issue']grField=df.groupby('Field').count()grIssue=df.groupby('Issue').count()dfgr=pd.concat([grField,grIssue],axis=1,sort=False)dfgr=dfgr.T# Make one go.Bar() object for each category# for corresponing Field / Issuetrace1=go.Bar(x=['Issue'],#y = [dfgr['Field']],y=[dfgr['Banking'].loc['Issue']],name='Banking')trace2=go.Bar(x=['Issue'],#y = [dfgr['Field']],y=[dfgr['Healthcare'].loc['Issue']],name='Healthcare')trace3=go.Bar(x=['Issue'],#y = [dfgr['Field']],y=[dfgr['Police'].loc['Issue']],name='Police')trace4=go.Bar(x=['Issue'],#y = [dfgr['Field']],y=[dfgr['Research'].loc['Issue']],name='Research')trace5=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Budget cuts'].loc['Field']],name='Budget cuts')trace6=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Bureaucracy'].loc['Field']],name='Bureaucracy')trace7=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Lack of oversight'].loc['Field']],name='Lack of oversight')trace7=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Lack of oversight'].loc['Field']],name='Lack of oversight')trace8=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Lack of support'].loc['Field']],name='Lack of support')trace9=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Mistrust'].loc['Field']],name='Mistrust')trace10=go.Bar(x=['Field'],#y = [dfgr['Field']],y=[dfgr['Time consuming'].loc['Field']],name='Time consuming')# gather data and set up layout#data = [trace1, trace2, trace3, trace4, trace5, trace6, trace7, trace8, trace9, trace10]data=[trace10,trace9,trace8,trace7,trace6,trace5,trace4,trace3,trace2,trace1]layout=go.Layout(barmode='stack',title='Stacked bar chart from single column')# Build figurefig=go.Figure(data=data,layout=layout)# PLot figureiplot(fig,filename='test.html')