Original size 1140x1600

Кухонные вытяжки на OZON: визуализация данных

PROTECT STATUS: not protected

Для своего проекта, я решила взять более приземленную, но не менее интересную в потребительском смысле тему: визуализация данных о присутствии на маркетплейсе разного рода вытяжек на примере конкретного поставщика. Данные я взяла напрямую с сервиса «OZON», где у меня работает знакомый, которого я попросила предоставить мне эти самые данные. Вся представленная в данном проекте информация также содержится в данный момент и в самих карточках товара OZON.

Анализ данных о вытяжках, которые представлены в проекте, представляет из себя реально действующие данные с информацией о вытяжках, которые представлены в данный момент на OZON.

big
Original size 1024x576
big
Original size 1242x499

Стилизация и загрузка данных из датасета

import pandas as pd import seaborn as sns import matplotlib.pyplot as plt

sns.set_theme (style="darkgrid», palette="deep», rc={"axes.spines.right»: False, «axes.spines.top»: False})

def load_and_prepare (file_path): data = pd.read_excel (file_path) data.columns = data.columns.str.strip ()

data['Вес товара, г'] = pd.to_numeric (data['Вес товара, г'], errors='coerce')
data = data.dropna (subset=['Вес товара, г'])
return data

Информационные диаграммы

Original size 1820x1024

Я решила использовать следующие виды графиков:

1. Столбчатая диаграмма и горизонтальная составная столбчатая диаграмма: для распределения товара по странам-изготовителям 2. Гистограмма: для распределения товара по весу 3. Круговая диаграмма: для распределения товара по типу 4. Составная столбчатая диаграмма: для распределения товара по типам управления, которые используются разными брендами

(Статистика количества вытяжек по странам изготовителям. Столбчатая диаграмма)

Original size 1200x600

Страна-изготовитель

Original size 1210x587

Статистика количества вытяжек по странам изготовителям. Столбчатая диаграмма

def plot_country (data): country_counts = data['Страна-изготовитель'].value_counts () plt.figure (figsize=(12, 6)) ax = sns.barplot (x=country_counts.index, y=country_counts.values, palette='viridis')

plt.title ('Количество вытяжек по странам-изготовителям', fontsize=14, fontweight='bold')
plt.xlabel ('Страна-изготовитель', fontsize=12)
plt.ylabel ('Количество вытяжек', fontsize=12)
plt.xticks (rotation=45, fontsize=10)
plt.yticks (fontsize=10)

for p in ax.patches:
    ax.annotate (f'{int (p.get_height ())}', (p.get_x () \+ p.get_width () / 2., p.get_height ()),
                ha='center', va='bottom', fontsize=10, fontweight='bold', color='black')

plt.grid (axis='y', linestyle='--', alpha=0.5)
plt.tight_layout ()
plt.show ()

(Статистика количества вытяжек по странам изготовителям и производителям. Горизонтальная составная столбчатая диаграмма)

Original size 1280x628

Страна-изготовитель

Original size 1280x454

Статистика количества вытяжек по странам изготовителям и производителям. Горизонтальная составная столбчатая диаграмма

def plot_manufacturer_country (data): manufacturer_country_counts = data.groupby (['Бренд', 'Страна-изготовитель']).size ().reset_index (name='Количество') plt.figure (figsize=(14, 8)) ax = sns.barplot (x='Количество', y='Бренд', hue='Страна-изготовитель', data=manufacturer_country_counts, palette='magma')

plt.title ('Количество вытяжек по производителю и стране-изготовителю', fontsize=14, fontweight='bold')
plt.xlabel ('Количество вытяжек', fontsize=12)
plt.ylabel ('Бренд', fontsize=12)
plt.xticks (fontsize=10)
plt.yticks (fontsize=10)

plt.legend (title='Страна-изготовитель', bbox_to_anchor=(1.05, 1), loc='upper left', fontsize=10)

plt.grid (axis='x', linestyle='--', alpha=0.5)
plt.tight_layout ()
plt.show ()

(Статистика по весу товаров. Гистограмма)

Original size 1200x600

Вес товара

Original size 955x341

Статистика по весу товаров. Гистограмма

def plot_weight (data): plt.figure (figsize=(12, 6)) sns.histplot (data['Вес товара, г'], bins=30, kde=True, color='royalblue', alpha=0.7) plt.title ('Распределение веса товара', fontsize=14, fontweight='bold') plt.xlabel ('Вес товара (г)', fontsize=12) plt.ylabel ('Частота', fontsize=12) plt.xticks (fontsize=10) plt.yticks (fontsize=10) plt.grid (True, linestyle='--', alpha=0.5) plt.tight_layout () plt.show ()

(Статистика вытяжек по типу. Круговая диаграмма)

Original size 1280x628

Тип товара

Original size 1280x245

Статистика вытяжек по типу. Круговая диаграмма

def plot_type (data): type_counts = data['Тип'].value_counts () plt.figure (figsize=(8, 8)) plt.pie (type_counts, labels=type_counts.index, autopct='%1.1f%%', colors=sns.color_palette ('coolwarm', len (type_counts)), startangle=140, wedgeprops={'edgecolor': 'black'}) plt.title ('Распределение вытяжек по типу', fontsize=14, fontweight='bold') plt.tight_layout () plt.show ()

(Статистика по типам управления, используемым разными брендами. Составная столбчатая диаграмма)

Original size 1280x628

Типы управления у разных брендов

Original size 1240x583

Статистика по типам управления, используемым разными брендами. Составная столбчатая диаграмма

def plot_control_by_brand (data): material_counts = data.groupby (['Бренд', 'Тип управления']).size ().unstack (fill_value=0)

fig, ax = plt.subplots (figsize=(14, 8))
material_counts.plot (kind='bar', stacked=True, colormap='Set2', edgecolor='black', alpha=0.8, ax=ax)

ax.set_title ('Используемые типы управления по брендам', fontsize=14, fontweight='bold')
ax.set_xlabel ('Бренд', fontsize=12)
ax.set_ylabel ('Количество моделей', fontsize=12)
ax.set_xticklabels (ax.get_xticklabels (), rotation=45, fontsize=10)
ax.tick_params (axis='y', labelsize=10)

ax.legend (title='Тип управления', bbox_to_anchor=(1.05, 1), loc='upper left', fontsize=10)
ax.grid (axis='y', linestyle='--', alpha=0.5)

plt.tight_layout ()
plt.show ()

Проанализировав графики можно прийти к выводам:

1. Судя по данным одно из крупных поставщиков кухонных вытяжек на озон, больше всего у него в продаже вытяжек страна изготовитель которых Польша, но при этом производителем у них заявлена Итальянская компания «MAUNFELD». 2. Чаще всего вес вытяжек не превышает 10.000 г. 3. Больше по количеству у данного производителя представлено именно НЕ встраиваемых кухонных вытяжек.

Датасет: https://drive.google.com/drive/folders/1Awhz19Vu3Fjw-bA98qRu2qA1abhRIPWj?dmr=1&ec=wgc-drive-globalnav-goto

Нейросеть для генерации изображений: recraft.ai

Промт для получения изображений: multiple futuristic kitchen hoods displayed in a spacious kitchen of the future calm and muted color scheme whites grays pale blues soft greens clean and minimalist design aesthetic detailed textures and materials brushed metal glass smooth composite advanced future kitchen interior subtle ambient lighting to highlight each hood focus on elegant lines and functional integration well-organized display not overly cluttered advanced future aesthetic sophisticated technology seamlessly incorporated into the design harmonious and serene atmosphere.

Кухонные вытяжки на OZON: визуализация данных