Streamlit — одна из самых мощных и хорошо упакованных библиотек Python, с которыми я когда-либо сталкивался. Впервые я наткнулся на это программное обеспечение, или фреймворк, как его любят называть создатели, в сообщении на LinkedIn, и сразу же был заинтригован тем, что оно может предложить.

Описанный как фреймворк для развертывания визуализаций и информационных панелей в качестве приложений, он в первую очередь ориентирован на варианты использования науки о данных и машинного обучения. Однако это гораздо больше, чем простая библиотека Python; это целая экосистема, которая включает в себя другие библиотеки и предлагает множество функций. Следовательно, создатели точны, называя его фреймворком.

Некоторое время я искал способ развернуть некоторый анализ или панель управления через приложение, которое любой мог бы легко просматривать в браузере. Streamlit предоставил для этого идеальное решение!

Ниже показано, как выглядит приложение, когда оно полностью развернуто, с использованием некоторого анализа, который я провел с набором данных команд чемпионата мира по футболу FIFA 2018. Я рассмотрю этот пример более подробно позже.

Чтобы получить доступ к приложению, вы можете использовать эту ссылку ИЛИ перейти в мой репозиторий Github и нажать черную кнопку Открыть в Streamlit (как показано ниже) в описании для более крутого опыта. .

Мне нравится думать, что Streamlit больше похож на Jupyter Notebook или Anaconda, чем на Pandas, если это делает смысл. Он предоставляет целую программную экосистему, которая работает с Python. Документация на веб-сайте хорошо структурирована и содержит пошаговые инструкции по ее реализации и развертыванию в виде приложения, а также по плавной интеграции со средой Python.

Ниже я описываю шаги, необходимые для успешного развертывания приложения Streamlit, а также подробности моего анализа составов на чемпионате мира по футболу 2018 года. Давайте приступим прямо к делу!

Python-скрипты

Первым шагом к созданию приложения Streamlit является создание скрипта Python, который выполняет определенные задачи. В этом случае я изучил набор данных чемпионата мира по футболу 2018 года и создал некоторые визуализации и текст уценки, используя функции Streamlit.

Подобно установке большинства пакетов в Python, Streamlit можно просто установить с помощью команды pip install streamlit. Сценарий, используемый для анализа, можно найти в репозитории Github, указанном выше, вместе с набором данных и файлом requirements.txt, который содержит библиотеки, необходимые для поддержки анализа в сценарии.

Анализ разбит на три основных раздела:

  1. Отображение фрагмента набора данных
  2. Анализ переменных Caps и Goals с помощью подграфиков
  3. Анализ переменной Position с помощью гистограммы

Мы сосредоточимся на двух конкретных функциях Streamlit:

  • Запись: используется для создания текста уценки.
  • Pyplot: используется для создания графиков с использованием платформы matplotlib.

Фрагмент первого раздела показан ниже. Давайте разберем это.

Сначала мы импортируем все необходимые библиотеки, а затем настраиваем схему. Для тех, кто не знаком с функцией gridspec, это полезная инструментальная часть библиотеки matplotlib, полезная для настройки подграфиков.

Строки 13–15 показывают первое использование функции Streamlit. В этом случае функция write используется для создания текста уценки, который в конечном итоге будет отображаться в конечном приложении. Строка 21 содержит другую функцию записи, которая содержит комбинацию некоторого текста уценки и загруженного фрейма данных. В этом случае первые пять строк фрейма данных будут отображаться в приложении, что является отличной особенностью этого фреймворка.

Во второй части сценария я визуализировал переменные Caps и Goals с помощью гистограмм и диаграмм рассеяния в сетке 2 × 2. Опять же, заголовок раздела написан с помощью уценки в строке 23.

В строке 21 мы знакомимся с новой функцией Streamlit под названием pyplot, которая поддерживает инфраструктуру matplotlib. Например, если новая фигура определена в matplotlib с помощью команды следующего вида:

fig3 = plt.figure() ИЛИ

fig3 = plt.figure(constrained_layout=True,figsize=(21,11))

переменная рисунка (fig3) может использоваться в функции pyplot для создания графика в среде Streamlit. Аналогичная команда выполняется в строке 59 кода. Остальная часть этого раздела в основном содержит стандартные функции matplotlib. В третьем и последнем разделе снова используются функции записи и pyplot Streamlit для создания дополнительного текста уценки и гистограммы, отображающей частоту для каждой позиции в наборе данных.

Чтобы использовать фреймворк Streamlit, сценарий необходимо запустить с помощью команды streamlit run, а не обычной команды python в Anaconda. Например, я выполнил следующую команду для запуска своего скрипта, который открыл предварительный просмотр приложения в веб-браузере:

Зарегистрируйтесь для обмена Streamlit и свяжите учетную запись Github

На странице предварительного просмотра нажмите кнопку меню (3 полоски) в правом верхнем углу страницы и выберите Развернуть это приложение.

Откроется окно, в котором вам будет предложено связать общедоступный репозиторий Github. Однако есть еще один ключевой шаг, который не совсем очевиден из инструкций, а именно регистрация в Совместное использование Streamlit.

Нажав на «наша документация» в окне выше, вы перейдете на веб-сайт Streamlit, где представлены дальнейшие инструкции по развертыванию приложения. Тем не менее, есть только два ключевых пункта, которые нужно сделать на этом этапе:

  1. Поместите файл code, data и файл requirements.txt в общедоступный репозиторий Github.
  2. Подпишитесь на поделиться Streamlit и свяжите указанный выше репозиторий Github.

Зарегистрироваться для обмена Streamlit очень просто. Оказавшись на странице (показанной ниже), нажмите «Запросить приглашение» и следуйте инструкциям, чтобы завершить настройку. Необходимы две важные части информации: каталог репозитория Github и адрес электронной почты, связанный с репозиторием.

Как только вы получите подтверждение по электронной почте о том, что ваша учетная запись настроена, приложение готово к развертыванию!

Развернуть приложение

Войдите в свою учетную запись для совместного использования Streamlit и нажмите синюю кнопку "Новое приложение" в верхнем левом углу страницы. Затем заполните информацию, необходимую для развертывания приложения. Как только ваша учетная запись Github будет связана с Streamlit, этот шаг будет довольно интуитивным.

Когда закончите, нажмите "Развернуть!", и Streamlit начнет выполнять ваш скрипт Python, используя библиотеки, указанные в файле requirements.txt.

Обратите внимание, что во время первоначального развертывания установка всех необходимых библиотек занимает некоторое время. Однако после запуска повторный запуск приложения занимает всего несколько секунд, и каждый раз, когда кто-либо посещает страницу, приложение автоматически перезапускается.

Имейте в виду, что приложение перейдет в спящий режим, если оно неактивно в течение определенного количества дней. Streamlit отправит вам электронное письмо с уведомлением о том, что приложение перейдет в спящий режим за несколько дней до этого. Для того, чтобы держать его активным, просто посетите страницу. Приложение также можно перезапустить из панели управления вашей учетной записи Streamlit.

Ну вот! Я надеюсь, что это было полезно. Дайте мне знать в комментариях, использовали ли вы Streamlit раньше и какие другие функции этого программного обеспечения вы нашли полезными. Моя конечная цель — развернуть панель управления финансами, которую я создал с помощью Streamlit, чтобы сделать ее более доступной для других пользователей. Следите за этим!

Первоначально опубликовано на http://thecraftofdata.com 31 июля 2021 г.