Untitled

From Botched Butterfly, 1 Year ago, written in Plain Text, viewed 217 times.
URL http://codebin.org/view/0433cd09 Embed
Download Paste or View Raw
  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. from sqlalchemy import create_engine
  14.  
  15. # пример подключения к базе данных для Postresql
  16. # db_config = {'user': 'my_user',
  17. #             'pwd': 'my_user_password',
  18. #             'host': 'localhost',
  19. #             'port': 5432,
  20. #             'db': 'games'}
  21. # engine = create_engine('postgresql://{}:{}@{}:{}/{}'.format(db_config['user'],
  22. #                                                            db_config['pwd'],
  23. #                                                            db_config['host'],
  24. #                                                            db_config['port'],
  25. #                                                            db_config['db']))
  26. # пример подключения к базе данных для Sqlite
  27. engine = create_engine('sqlite:////db/games.db', echo = False)
  28.  
  29. # получаем сырые данные
  30. # напишите код
  31. query = '''
  32.             SELECT * FROM data_raw
  33.         '''
  34. games_raw = pd.io.sql.read_sql(query, con = engine)
  35.  
  36. # формируем данные для отчёта
  37. games_grouped = (games_raw.groupby(['genre', 'year_of_release'])
  38.                           .agg({'name':'count'})
  39.                           .reset_index()
  40.                           .rename(columns = {'name':'Games Released'})
  41.                 )
  42.  
  43. # формируем графики для отрисовки
  44. data_games_by_year = []
  45. for genre in games_grouped['genre'].unique():
  46.     current = games_grouped.query('genre == @genre')
  47.     data_games_by_year += [go.Scatter(x = current['year_of_release'], # напишите код
  48.                         y = current['Games Released'], # напишите код
  49.                         mode = 'lines',
  50.                         stackgroup = 'one', # напишите код
  51.                         name = genre)] # напишите код
  52.  
  53.  
  54.  
  55. # задаём лейаут
  56. external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
  57. app = dash.Dash(__name__, external_stylesheets=external_stylesheets,compress=False)
  58. app.layout = html.Div(children=[  
  59.    
  60.     # формируем html
  61.     html.H1(children = 'Выпуск игр по годам'),
  62.  
  63.     dcc.Graph(
  64.         figure = {'data': data_games_by_year,
  65.                   'layout': go.Layout(xaxis = {'title': 'Год'},
  66.                                       yaxis = {'title': 'Выпущенные игры'})
  67.                  },
  68.         id = 'games_by_year'
  69.     ),        
  70.  
  71. ])
  72.  
  73. # описываем логику дашборда
  74. if __name__ == '__main__':
  75.     app.run_server(host='0.0.0.0', port=3000)

Reply to "Untitled"

Here you can reply to the paste above