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)
Теперь при запуске файла в терминале появится адрес локального сервера. Пройдя по нему, в браузере откроем наш интерактивный дашборд, который самостоятельно обновляется при изменении значений слайдеров.
Комментарии
Добавить комментарий
[ Рекомендации ]
Читайте также
[ Связаться ]
Давайте раскроем потенциал вашего бизнеса вместе
Заполните форму на бесплатную консультацию
Что-то я не нашёл в последнем материале саму функцию get_scatter_plot, там только упоминание есть о ней. )
В предыдущем материале как раз описан код построения функции get_scatter_plot.
Однако согласен, имеет смысл добавить функцию целиком в материал.
update: готово, посмотрите в предыдущем материале.
Спасибо за комментарий!
Спасибо. А, то есть это всё одна большая функция. Теперь понятно. Я думаю, оптимально было бы просто выкладывать целиком код к статье на github, чтобы можно было при желании воспроизвести, не собирая самому код из кусков по тексту.