AliaksandrLet

Урок 2. Дашборды

Jul 31st, 2022 (edited)
151
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.93 KB | None | 0 0
  1. #!/usr/bin/python
  2. # -*- coding: utf-8 -*-
  3.  
  4. import dash
  5. import dash_core_components as dcc
  6. import dash_html_components as html
  7.  
  8. import plotly.graph_objs as go
  9.  
  10. import pandas as pd
  11.  
  12. # задаём данные для отрисовки
  13. games_raw = pd.read_csv('/datasets/games_full.csv')
  14. games_raw['Year_of_Release'] = pd.to_datetime(games_raw['Year_of_Release'])
  15.  
  16. # формируем данные для отчёта
  17. games_grouped = (games_raw.groupby(['Genre', 'Year_of_Release']) # ваш код
  18.                           .agg({'Name':'count'}) # ваш код
  19.                           .reset_index()
  20.                           .rename(columns = {'count':'Games Released'}) # ваш код
  21.                 )
  22.  
  23. # формируем графики для отрисовки
  24. data = []
  25. for genre in games_grouped['Genre'].unique():
  26.     current = games_grouped.query('Genre == @genre')
  27.     data += [go.Scatter(x = current['Year_of_Release'], # напишите код
  28.                         y = current['Games Released'], # напишите код
  29.                         mode = 'lines',
  30.                         stackgroup = 'one', # напишите код
  31.                         name = genre)]
  32.  
  33. # задаём лейаут
  34. external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
  35. app = dash.Dash(__name__, external_stylesheets=external_stylesheets,compress=False)
  36. app.layout = html.Div(children=[  
  37.    
  38.     # формируем html
  39.     html.H1(children = 'Выпуск игр по годам'),
  40.  
  41.     dcc.Graph(
  42.         figure = {'data': data,
  43.                   'layout': go.Layout(xaxis = {'title': 'Год'},
  44.                                       yaxis = {'title': 'Выпущенные игры'})
  45.                  },
  46.         id = 'games_by_year' # ваш код
  47.     ),      
  48.  
  49. ])
  50.  
  51. # описываем логику дашборда
  52. if __name__ == '__main__':
  53.     app.run_server(host='0.0.0.0', port=3000)
Add Comment
Please, Sign In to add comment