Делаем дашборд с параметром на Python - LEFT JOIN

Свяжитесь с нами в любой удобной для вас форме

Менеджер

Написать в телеграмм

Онлайн
Телеграмм
или
Заполните форму

1 минута чтения

*

20 июля 2020 г.

Делаем дашборд с параметром на Python

В прошлом материале мы подготовили scatter plot, используя библиотеку plotly: он отображал отношение количества отзывов пивоварни к её рейтингу в социальной сети Untappd. Ещё мы добавили каждому маркеру характеристики: дату регистрации пивоварни и количество сортов пива в её ассортименте. Сегодня воспользуемся другим инструментом plotly — Dash, и построим дашборд с двумя параметрами для этого графика. Создадим новый файл — application.py, который будет импортировать функцию get_scatter_plot(n_days, top_n) из последнего материала.


import dash
import dash_core_components as dcc
import dash_html_components as html
from get_plots import get_scatter_plot

После импорта библиотек загружаем css-стили и инициируем веб-приложение:


external_stylesheets = [‘https://codepen.io/chriddyp/pen/bWLwgP.css’]
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)

Опишем структуру дашборда:


app.layout = html.Div(children=[
       html.Div([
           dcc.Graph(id=’fig1′),
       ]) ,
       html.Div([
           html.H6(‘Временной период, дней’),
           dcc.Slider(
               id=’slider-day1′,
               min=0,
               max=100,
               step=1,
               value=30,
               marks={i: str(i) for i in range(0, 100, 10)}
           ),
           html.H6(‘Количество пивоварен в топе’),
           dcc.Slider(
               id=’slider-top1′,
               min=0,
               max=500,
               step=50,
               value=500,
               marks={i: str(i) for i in range(0, 500, 50)})
       ])
])

Мы обозначили на панели график и два слайдера. У каждого слайдера есть свой идентификатор и параметры: минимальное значение, максимальное, шаг изменения, начальное значение. Так как данные из слайдеров будут передаваться в график, опишем callback для них: первый аргумент — Output — график, который будет изменяться, это наш вывод. Следующие два — Input — параметры, от которых график зависит.


@app.callback(
   dash.dependencies.Output(‘fig1’, ‘figure’),
   [dash.dependencies.Input(‘slider-day1’, ‘value’),
    dash.dependencies.Input(‘slider-top1’, ‘value’)])
def output_fig(n_days, top_n):
    fig = get_scatter_plot(n_days, top_n)
    return fig

В конце файла добавим вызов локального сервера:


if __name__ == ‘__main__’:
   app.run_server(debug=True)

Теперь при запуске файла в терминале появится адрес локального сервера. Пройдя по нему, в браузере откроем наш интерактивный дашборд, который самостоятельно обновляется при изменении значений слайдеров.

229 просмотров

Комментарии

  • Иван Шейнин
    Иван Шейнин

    Что-то я не нашёл в последнем материале саму функцию get_scatter_plot, там только упоминание есть о ней. )

    • Николай Валиотти
      Николай Валиотти

      В предыдущем материале как раз описан код построения функции get_scatter_plot.

      Однако согласен, имеет смысл добавить функцию целиком в материал.
      update: готово, посмотрите в предыдущем материале.
      Спасибо за комментарий!

  • Иван Шейнин
    Иван Шейнин

    Спасибо. А, то есть это всё одна большая функция. Теперь понятно. Я думаю, оптимально было бы просто выкладывать целиком код к статье на github, чтобы можно было при желании воспроизвести, не собирая самому код из кусков по тексту.

Добавить комментарий

[ Рекомендации ]

Читайте также

1 минута чтения

*

21 января 2021

Funnel chart в Tableau

1 минута чтения

*

2 октября 2020

Постановка задачи для дашборда

[ Дальше ]