library(tidyverse)
net_a_porter <- read_csv("~/Downloads/archive/net-a-porter.csv")
mr_porter <- read_csv("~/Downloads/archive/mr-porter.csv")
net_a_porter$store <- "Net-a-Porter"
mr_porter$store <- "Mr Porter"
fashion <- bind_rows(net_a_porter, mr_porter)
This analysis examines a dataset of luxury fashion products from luxury retailers Net-a-Porter and Mr Porter. As someone who will be pursuing a career in fashion buying and merchandising, analyzing these patterns in product assortment, pricing, descriptions, etc. are important when looking at trend prediction.
The dataset contains 43,508 luxury fashion products and five variables: brand, description, price (USD), product type, and store. The data combines products from Net-a-Porter and Mr Porter, allowing the two stores to be compared based on their product offerings and pricing.
This visualization shows the number of products in each product type across both Net-a-Porter and Mr Porter. It helps show which categories make up the largest part of the luxury fashion assortment.
# Visualization 1: # of Products by Product Type
ggplot(fashion, aes(x = type)) +
geom_bar(fill = "pink") +
labs(
title = "Luxury Fashion Products by Product Type",
x = "Product Type",
y = "Number of Products"
) +
theme_minimal()
This visualization shows the distribution of product prices in the dataset. It helps show the range of prices and where luxury fashion products tend to be most concentrated.
# Visualization 2: Distribution of Product Prices
ggplot(fashion, aes(x = price_usd)) +
geom_histogram(bins = 30, fill = "lightblue") +
labs(
title = "Distribution of Luxury Fashion Product Prices",
x = "Price (USD)",
y = "Number of Products"
) +
theme_minimal()
This visualization compares the number of products available from Net-a-Porter and Mr Porter. It illustrates how the total product assortment is divided between the two stores.
# Visualization 3: Product Distribution by Store
store_counts <- fashion %>%
count(store)
ggplot(store_counts, aes(x = 2, y = n, fill = store)) +
geom_col(width = 1) +
coord_polar(theta = "y") +
xlim(0.5, 2.5) +
labs(
title = "Luxury Fashion Products by Store",
fill = "Store"
) +
theme_void() +
theme(
plot.title = element_text(hjust = 0.5)
)
This visualization compares the types of luxury fashion products offered by Net-a-Porter and Mr Porter. Comparing the stores side by side helps identify similarities and differences in their product assortments.
# Visualization 4: Product Types by Store
ggplot(fashion, aes(x = type)) +
geom_bar(fill = "pink") +
facet_wrap(~store) +
labs(
title = "Luxury Fashion Product Types by Store",
x = "Product Type",
y = "Number of Products"
) +
theme_minimal() +
theme(
axis.text.x = element_text(angle = 45, hjust = 1)
)
This heat map shows the number of products for each product type across Net-a-Porter and Mr Porter. It provides a visual comparison of how product categories are distributed between the two stores.
# Visualization 5: Product Type and Store
heatmap_data <- fashion %>%
count(store, type)
ggplot(heatmap_data, aes(x = store, y = type, fill = n)) +
geom_tile() +
labs(
title = "Luxury Fashion Product Assortment by Store",
x = "Store",
y = "Product Type",
fill = "Number of Products"
) +
theme_minimal()
Overall, this analysis shows the product assortment and pricing patterns across Net-a-Porter and Mr Porter. The visualizations show differences in product types and store offerings while providing an overview of the luxury fashion products included in the dataset. Data like this is widely used in the fashion industry to predict trends, analyze markets, and more.
This is an R Markdown document. Markdown is a simple formatting syntax for authoring HTML, PDF, and MS Word documents. For more details on using R Markdown see http://rmarkdown.rstudio.com.
When you click the Knit button a document will be generated that includes both content as well as the output of any embedded R code chunks within the document. You can embed an R code chunk like this:
summary(cars)
## speed dist
## Min. : 4.0 Min. : 2.00
## 1st Qu.:12.0 1st Qu.: 26.00
## Median :15.0 Median : 36.00
## Mean :15.4 Mean : 42.98
## 3rd Qu.:19.0 3rd Qu.: 56.00
## Max. :25.0 Max. :120.00
You can also embed plots, for example:
Note that the echo = FALSE parameter was added to the
code chunk to prevent printing of the R code that generated the
plot.