Время прочтения: 3 мин.
Недавно посмотрел курс IBM по визуализации данных с использованием Python. Интерес вызвал раздел “построение дэшбордов”. В разделе перечислены как уже знакомые библиотеки Bokeh, Dash, так и незнакомые Streamlit, Panel. Библиотека Dash предоставляет богатый функционал для построения интерактивных отчетов или веб-приложений. К сожалению, в community версии нет возможности использовать часть тем. Возможности развернуть свой отчет на серверах Dash также нет.
Streamlit – библиотека с открытым исходным кодом для языка программирования Python. На странице библиотеки разработчики обещают простой API, полностью бесплатную функциональность, а также быстрое и бесплатное развертывание на серверах.
Библиотека предоставляет собой декларативный подход к написанию веб-приложений. Напомню, что программисты разделяют два основных подхода к разработке: императивный и декларативный. Первый подход как решить задачу и описывает шаги для достижения результата. Декларативный подход противоположен, в нем указывается что вы хотите.
Большое преимущество Streamlight, в том, что вам не нужно писать backend, подключать frontend или писать на HTML, CSS или JS для красивой верстки вашего проекта.
К примеру, чтобы сделать форму, в которой будет содержаться текст и график, вам понадобится всего 5 строчек кода:
```python main.py```
import streamlit as st
import pandas as pd
df = pd.read_csv("dataset.csv")
st.write("линейный график")
st.line_chart(df)
И запуск веб-приложения в командной строке:
```bash```
streamlit run main.app
Приятные аспекты разработки с использованием данной библиотеки:
- Поддержка популярных библиотек, таких как Pandas, Matplotlib, Seaborn, Plotly, Bokeh, Altair, Folium;
- Поддержка языков разметки Markdown, Latex;
- Возможность добавлять интерактивные виджеты: слайдеры, выпадающие списки одной строкой;
- Галерея приложений, разработанных с использованием этой библиотеки, в различных областях;
- Быстрая поддержка;
- Быстрое и понятное развертывание на серверах разработчиков.
Что не понравилось:
- В документации содержалось мало примеров;
- Плохая адаптивная верстка у Plotly и Bokeh.
Примеры реализованных приложений
Для освоения библиотеки реализовано два простых веб-приложения. Первое реализует функции математической морфологии.
- Загрузка своего изображения;
- Операции эрозии, дилатации, вскрытия и закрытия;
- Показ изображения до и после обработки;
- Визуализация гистограмм изображений.
Во втором приложении реализованы функции интерактивной визуализации результатов экспериментов
- Можно выбрать оси;
- Выбор функции агрегирования;
- Выбор метода интерполяции.
Развертывать приложения я решил на хостинге от streamlit. Для размещения приложения на серверах streamlit достаточно выполнить простые шаги, указанные в документации.
Вывод: библиотека Streamlit подходит для быстрой разработки и развертывания веб-приложений. На текущий момент библиотека имеет не более 10 интерактивных виджетов. Однако с их помощью можно создать действительно интересные программы. Подборку таких программ можно найти на официальном сайте библиотеки. Рекомендую ознакомится с библиотекой, она поможет в быстром создании веб-приложений.