Pythoner
Фотография
✈️Dash — это продуктивная библиотека Python для создания аналитических веб-приложений. Dash связывает элементы пользовательского интерфейса с данными и функциями Python, что позволяет быстро создавать веб-приложения с интерактивными визуализациями. Dash был разработан командой Plotly и предоставляет мощные инструменты для создания дашбордов и веб-приложений.
➡️Основные возможности:
- Интерактивные визуализации: Dash позволяет создавать интерактивные визуализации с помощью Plotly, что делает его идеальным инструментом для создания дашбордов и аналитических приложений.
- Поддержка множества компонентов: Dash поддерживает множество компонентов, включая графики, таблицы, кнопки, переключатели и другие, что позволяет создавать сложные пользовательские интерфейсы.
- Развертывание: Dash позволяет легко развертывать веб-приложения на серверах и облачных платформах, таких как Heroku, AWS и Google Cloud.
➡️Примеры использования
1. Создание простого веб-приложения:
import dash
from dash import html, dcc
import plotly.express as px
import pandas as pd
# Создание приложения
app = dash.Dash(__name__)
# Данные
df = pd.DataFrame({
"Fruit": ["Apples", "Oranges", "Bananas", "Apples", "Oranges", "Bananas"],
"Amount": [4, 1, 2, 2, 4, 5],
"City": ["SF", "SF", "SF", "Montreal", "Montreal", "Montreal"]
})
# Создание графика
fig = px.bar(df, x="Fruit", y="Amount", color="City", barmode="group")
# Layout
app.layout = html.Div(children=[
html.H1(children='Hello Dash'),
html.Div(children='''
Dash: A web application framework for your data.
'''),
dcc.Graph(
id='example-graph',
figure=fig
)
])
# Запуск сервера
if __name__ == '__main__':
app.run_server(debug=True)
2. Создание интерактивного дашборда:
import dash
from dash import html, dcc, Input, Output
import plotly.express as px
import pandas as pd
# Создание приложения
app = dash.Dash(__name__)
# Данные
df = pd.read_csv('https://raw.githubusercontent.com/plotly/datasets/master/gapminder_unfiltered.csv')
# Layout
app.layout = html.Div([
dcc.Graph(id='graph-with-slider'),
dcc.Slider(
df['year'].min(),
df['year'].max(),
step=None,
value=df['year'].min(),
marks={str(year): str(year) for year in df['year'].unique()},
id='year-slider'
)
])
# Callback
@app.callback(
Output('graph-with-slider', 'figure'),
Input('year-slider', 'value'))
def update_figure(selected_year):
filtered_df = df[df.year == selected_year]
fig = px.scatter(filtered_df, x="gdpPercap", y="lifeExp",
size="pop", color="continent", hover_name="country",
log_x=True, size_max=55)
fig.update_layout(transition_duration=500)
return fig
# Запуск сервера
if __name__ == '__main__':
app.run_server(debug=True)
⛓Полезные ссылки:
Официальный сайт
GitHub
🐍 Pythoner
36 · 1.9K ·