Advertisement
Guest User

Untitled

a guest
Mar 20th, 2019
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.39 KB | None | 0 0
  1. #In questa sezione importiamo i moduli per la visualizzazione interattiva dei dati
  2.  
  3. from bokeh.layouts import column
  4. from bokeh.models import ColumnDataSource, Plot, Select,LinearAxis, Grid, HoverTool
  5. from bokeh.models.glyphs import VBar
  6. from bokeh.plotting import figure,curdoc
  7. from bokeh.io import show,push_notebook, output_notebook,output_file
  8.  
  9. #Output_notebook() è necessario per visualizzare
  10. #i grafici all'interno di jupyter notebook
  11.  
  12. output_notebook()
  13. #Voglio provare a fare un plot interattivo
  14. #Selezionando la variabile di interesse
  15. #Viene rappresentato graficamente
  16. #L'elemento selezionato
  17. df_r=df_train.copy()
  18. #Stiamo cambiando il data type di date
  19. #da Time a String
  20. #Così che ColumnDataSource non dia di matto
  21.  
  22. df_r['date']=df_r['date'].tolist()
  23. source = ColumnDataSource(data=df_r)
  24.  
  25. #Dobbiamo selezionare tutte le colonne
  26. #Ad eccezione di quella contenente il tempo che sarà unica per tutti
  27. activity_list=df_train.columns[1:].unique().tolist().copy()
  28. print(activity_list)
  29. print(df_r.date.max())
  30.  
  31. #La nostra variabile di default
  32. #Serve solo per inizializzare il sistema
  33. #Poteva essere Humidity o Light
  34. activity_selected='Temperature'
  35. df_r['date']=df_r['date'].tolist()
  36. def modify_doc(doc):
  37.  
  38.  
  39. xrange=[0,df_r.index.max()]
  40.  
  41. yrange=[0,df_r[activity_selected].max()]
  42. source = ColumnDataSource(data=dict(x=df_r.index,y=df_r[activity_selected],date=df_r['date']))
  43.  
  44. hover=HoverTool(tooltips=[('Date','@date{%F}')],formatters={'date':'datetime'})
  45. plot=figure(title='Andamento',tools=[hover,'pan','wheel_zoom'], plot_width=400, plot_height=400,x_range=(xrange), y_range=(yrange))
  46. plot.line(x='x', y="y",source=source)
  47.  
  48. def update_plot(attr, old, new):
  49. activity=select.value
  50. data=pd.DataFrame(data=df_r[activity], index=df_r.index)
  51. source.data=ColumnDataSource(data=dict(x=data.index,y=data[activity],date=df_r['date'])).data
  52. plot.y_range.start=0
  53. #Questo punto serve per l'aggiornamento dell'asse y
  54. plot.y_range.end=df_r[activity].max()
  55. #In Questo modo conosciamo e visualiziamo l'ultima selezione
  56. #ed abbiamo uno storico delle visualizzazioni
  57. print("Your last selection:",select.value)
  58.  
  59.  
  60.  
  61. select = Select(title='Select Activity', value=activity_selected, options=activity_list)
  62. select.on_change('value', update_plot)
  63.  
  64. layout=column(select, plot)
  65. doc.add_root(layout)
  66. show(modify_doc)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement