Библиотека Streamlit
Ты когда-нибудь задумывался, как легко можно создать веб-приложение для визуализации данных с помощью Python? Если нет, то ты в правильном месте! Сегодня мы погрузимся в мир Streamlit — библиотеки, которая делает создание интерактивных приложений проще, чем приготовить яичницу. А если ты еще не умеешь готовить яичницу, не переживай — мы разберёмся с этим тоже!
Что такое Streamlit?
Streamlit — это библиотека для создания веб-приложений на Python, которая позволяет разработчикам сосредоточиться на логике приложения, а не на сложностях веб-разработки. В отличие от других фреймворков, таких как Flask или Django, Streamlit позволяет создавать интерфейсы всего за несколько строк кода. Официальная документация
Основные функции
1. Отображение текста и заголовков
• st.title(): Создает заголовок приложения.
• st.header(): Добавляет заголовок второго уровня.
• st.subheader(): Добавляет заголовок третьего уровня.
• st.write(): Универсальная функция для отображения текста, данных, графиков и других объектов.
2. Интерактивные виджеты
• st.button(): Создает кнопку, при нажатии на которую можно выполнить действие.
• st.slider(): Создает ползунок для выбора числового значения.
• st.selectbox(): Выпадающий список для выбора одного элемента.
• st.multiselect(): Позволяет выбирать несколько элементов из списка.
• st.text_input(): Поле для ввода текста.
• st.file_uploader(): Позволяет загружать файлы (например, CSV).
3. Графики и визуализация данных
• st.line_chart(), st.bar_chart(), st.area_chart(): Быстрое создание линейных, столбчатых и областных графиков.
• st.pyplot(): Отображение графиков, созданных с помощью Matplotlib.
• st.altair_chart(): Визуализация данных с использованием библиотеки Altair.
• st.plotly_chart(): Интеграция с Plotly для создания интерактивных графиков.
4. Работа с данными
• st.dataframe(): Отображает данные в виде интерактивной таблицы.
• st.table(): Отображает данные в виде статической таблицы.
5. Состояние приложения
• st.session_state: Позволяет сохранять состояние между обновлениями приложения, что полезно для управления пользовательскими данными и взаимодействием.
6. Загрузка и сохранение данных
• st.file_uploader(): Для загрузки файлов пользователями.
• st.download_button(): Позволяет пользователям скачивать файлы.
7. Управление макетом
• st.sidebar: Создает боковую панель для размещения виджетов и управления элементами интерфейса.
• st.columns(): Позволяет создавать многостолбцовые макеты для организации контента.
8. Кэширование
• @st.cache_data и @st.cache_resource: Позволяют кэшировать результаты функций для ускорения выполнения и уменьшения нагрузки на сервер.
9. Мультимедийный контент
• st.image(): Отображает изображения.
• st.video(): Встраивает видео.
• st.audio(): Встраивает аудиофайлы.
Установка Streamlit
Перед тем как начать, тебе нужно установить Streamlit. Открой терминал и введи:
pip install streamlit
Легко, правда? Теперь ты готов к действию!
Первое приложение на Streamlit
Давай создадим простое приложение, которое отображает текст и график. Создай файл
app.py
и добавь следующий код:
import streamlit as st
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
#Заголовок приложения
st.title('Моё первое приложение на Streamlit!')
#Слайдер для выбора числа
number = st.slider('Выбери число', 0, 100, 25)
#Генерация данных
data = np.random.randn(100, 2)
df = pd.DataFrame(data, columns=['x', 'y'])
#Отображение графика
st.write(f'Вот график для числа {number}:')
plt.scatter(df['x'], df['y'])
plt.axhline(y=number, color='r', linestyle='-')
st.pyplot(plt)
Теперь запусти приложение командой
streamlit run app.py
. Откроется браузер с твоим приложением! Удивительно, как всего несколько строк кода могут создать что-то такое интерактивное.Интерактивность — ключ к успеху
Одной из самых крутых фишек Streamlit является возможность добавлять интерактивные элементы. Например, давай добавим выпадающий список:
option = st.selectbox('Выбери свой любимый цвет:', ['Красный', 'Зелёный', 'Синий'])
st.write(f'Ты выбрал: {option}')
Этот код создаёт выпадающий список с тремя цветами. Когда пользователь выбирает цвет, он отображается на экране. Легко и весело!
Работа с данными
Streamlit отлично подходит для работы с данными. Ты можешь загружать файлы и анализировать их. Давай добавим возможность загрузки CSV-файла:
uploadedfile = st.fileuploader("Выберите CSV файл", type='csv')
if uploaded_file is not None:
df = pd.readcsv(uploadedfile)
st.write(df)
Теперь пользователь может загрузить свой CSV-файл, и данные будут отображены в приложении. Это как волшебство, только без шляпы!
Факты о Streamlit
- Streamlit был создан в 2019 году и быстро завоевал популярность среди разработчиков.
- Библиотека поддерживает интеграцию с различными библиотеками визуализации, такими как Matplotlib и Plotly.
- С помощью Streamlit можно создавать приложения для машинного обучения без необходимости изучать фронтенд.
Заключение
Streamlit — это отличный инструмент для разработчиков, которые хотят создавать интерактивные приложения с минимальными усилиями. Теперь ты знаешь основы и можешь начать создавать свои собственные приложения. Не забудь экспериментировать и добавлять свои идеи!
И помни: если что-то пойдёт не так, всегда можно сказать "это фича, а не баг!"