/
Romashkaplus
/
work-flask
Обзор
Документация
Войти
/
Romashkaplus
/
work-flask
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
dashboard.py
71 строка
3 KB
Ромашенькина Надежда
upload files
21 ноя 2025, 14:16
21 ноя 2025, 14:16
d36d351
Код
Авторство
О чём код?
import os import streamlit as st import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import plotly.express as px # === Загрузка данных с правильным путём === current_dir = os.path.dirname(os.path.abspath(__file__)) # Загрузка основного файла sales_data.csv csv_path1 = os.path.join(current_dir, "monthly_sales.csv") csv_path2 = os.path.join(current_dir, "regions_sales.csv") # Загружаем данные df_monthly = pd.read_csv(csv_path1) df_regions = pd.read_csv(csv_path2) # Настройка внешнего вида Streamlit st.set_page_config(layout="wide") # Название страницы st.title("Анализ KPI розничной торговли") # Боковая панель с выбором типа графиков graph_type = st.sidebar.selectbox( "Выберите график", ["Продажи и прибыль по месяцам", "Количество клиентов и средний чек", "Регион продаж"] ) if graph_type == "Продажи и прибыль по месяцам": # График динамики продаж и прибыли fig, ax1 = plt.subplots(figsize=(12, 6)) color = 'tab:blue' ax1.plot(df_monthly['месяц'], df_monthly['продажи_тыс_руб'], marker='o', label='Продажи', color=color) ax1.tick_params(axis='y', labelcolor=color) ax1.set_ylabel('Продажи (тыс. руб.)', color=color) ax2 = ax1.twinx() color = 'tab:green' ax2.plot(df_monthly['месяц'], df_monthly['прибыль_тыс_руб'], marker='s', label='Прибыль', color=color) ax2.tick_params(axis='y', labelcolor=color) ax2.set_ylabel('Прибыль (тыс. руб.)', color=color) plt.title('Графики продаж и прибыли по месяцам') plt.grid(True) st.pyplot(fig) elif graph_type == "Количество клиентов и средний чек": # График количества клиентов и среднего чека fig, ax1 = plt.subplots(figsize=(12, 6)) color = 'tab:orange' ax1.bar(df_monthly['месяц'], df_monthly['количество_клиентов'], alpha=0.6, label='Клиенты', color=color) ax1.set_ylabel('Количество клиентов', color=color) ax1.tick_params(axis='y', colors=color) ax2 = ax1.twinx() color = 'tab:brown' ax2.plot(df_monthly['месяц'], df_monthly['средний_чек_руб'], marker='^', linestyle='--', label='Средний чек', color=color) ax2.set_ylabel('Средний чек (руб.)', color=color) ax2.tick_params(axis='y', colors=color) plt.title('Графики количества клиентов и среднего чека') plt.grid(True) st.pyplot(fig) else: # Круговая диаграмма регионов fig = px.pie(df_regions, values='продажи_за_год_тыс_руб', names='регион', title='Распределение продаж по регионам') st.plotly_chart(fig)