Site icon DataFlair

Seaborn Project – E-Commerce Sales Visualization

Machine Learning courses with 110+ Real-time projects Start Now!!

Program 1

E-Commerce Sales Dataset

# E-Commerce Sales Visualization using Seaborn

#This project analyzes e-commerce sales data using Seaborn and Matplotlib. 
# It visualizes trends over time, category-wise performance, regional patterns, 
# and customer behavior through various charts like line plots, bar plots, and box plots.


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

# Load the dataset
df = pd.read_csv("ecommerce_sales.csv")
#print(df.isnull().sum())
# Convert 'Date' to datetime format
df['Date'] = pd.to_datetime(df['Date'])

# Plot 1: Lineplot of total sales over time

# plt.figure(figsize=(10, 5))
# daily_sales = df.groupby('Date')['Sales'].sum().reset_index()
# print(daily_sales)
# sns.lineplot(data=daily_sales, x='Date', y='Sales', marker='o')
# plt.title("Total Sales Over Time")
# plt.ylabel("Sales ($)")
# plt.xlabel("Date")
# plt.xticks(rotation=45)
# #plt.tight_layout()
# plt.show()

# Plot 2: Barplot of sales by category
# plt.figure(figsize=(8, 5))
# category_sales = df.groupby('Category')['Sales'].sum().reset_index()
# print(category_sales)
# sns.barplot(data=category_sales, x='Category', y='Sales', palette='pastel')
# plt.title("Sales by Product Category")
# plt.ylabel("Total Sales ($)")
# plt.xlabel("Category")
# plt.tight_layout()
# plt.show()

# Plot 3: Sales by Region and Customer Type
# Calculate cumulative sales
df_sorted = df.sort_values('Date')
df_sorted['Cumulative_Sales'] = df_sorted['Sales'].cumsum()
print(df_sorted )
#Plot cumulative sales
# plt.figure(figsize=(10, 5))
# sns.lineplot(data=df_sorted, x='Date', y='Cumulative_Sales', marker='o', color='green')
# plt.title("Cumulative Sales Over Time")
# plt.xlabel("Date")
# plt.ylabel("Cumulative Sales ($)")
# plt.xticks(rotation=45)
# plt.tight_layout()
# plt.show()

#Box Plot of Sales Distribution by Category
plt.figure(figsize=(10, 6))
sns.boxplot(data=df, x='Category', y='Sales', palette='Set2')
plt.title("Sales Distribution by Product Category")
plt.xlabel("Product Category")
plt.ylabel("Sales ($)")
plt.tight_layout()
plt.show()

 

Exit mobile version