Animate a circular packing plot showing district-wise population trends.
STEP 1: Load the Dataset
data <-read.csv("C:/Users/Vaishnavi/Downloads/archive/Global_Superstore2.csv")head(data)
Row.ID Order.ID Order.Date Ship.Date Ship.Mode Customer.ID
1 32298 CA-2012-124891 31-07-2012 31-07-2012 Same Day RH-19495
2 26341 IN-2013-77878 05-02-2013 07-02-2013 Second Class JR-16210
3 25330 IN-2013-71249 17-10-2013 18-10-2013 First Class CR-12730
4 13524 ES-2013-1579342 28-01-2013 30-01-2013 First Class KM-16375
5 47221 SG-2013-4320 05-11-2013 06-11-2013 Same Day RH-9495
6 22732 IN-2013-42360 28-06-2013 01-07-2013 Second Class JM-15655
Customer.Name Segment City State Country
1 Rick Hansen Consumer New York City New York United States
2 Justin Ritter Corporate Wollongong New South Wales Australia
3 Craig Reiter Consumer Brisbane Queensland Australia
4 Katherine Murray Home Office Berlin Berlin Germany
5 Rick Hansen Consumer Dakar Dakar Senegal
6 Jim Mitchum Corporate Sydney New South Wales Australia
Postal.Code Market Region Product.ID Category Sub.Category
1 10024 US East TEC-AC-10003033 Technology Accessories
2 NA APAC Oceania FUR-CH-10003950 Furniture Chairs
3 NA APAC Oceania TEC-PH-10004664 Technology Phones
4 NA EU Central TEC-PH-10004583 Technology Phones
5 NA Africa Africa TEC-SHA-10000501 Technology Copiers
6 NA APAC Oceania TEC-PH-10000030 Technology Phones
Product.Name Sales
1 Plantronics CS510 - Over-the-Head monaural Wireless Headset System 2309.650
2 Novimex Executive Leather Armchair, Black 3709.395
3 Nokia Smart Phone, with Caller ID 5175.171
4 Motorola Smart Phone, Cordless 2892.510
5 Sharp Wireless Fax, High-Speed 2832.960
6 Samsung Smart Phone, with Caller ID 2862.675
Quantity Discount Profit Shipping.Cost Order.Priority
1 7 0.0 762.1845 933.57 Critical
2 9 0.1 -288.7650 923.63 Critical
3 9 0.1 919.9710 915.49 Medium
4 5 0.1 -96.5400 910.16 Medium
5 8 0.0 311.5200 903.04 Critical
6 5 0.1 763.2750 897.35 Critical
Explanation: Loads the dataset and displays first rows.
STEP 2: Load Libraries
library(tidyverse)
── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
✔ dplyr 1.2.0 ✔ readr 2.1.6
✔ forcats 1.0.1 ✔ stringr 1.6.0
✔ ggplot2 4.0.2 ✔ tibble 3.3.1
✔ lubridate 1.9.5 ✔ tidyr 1.3.2
✔ purrr 1.2.1
── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
✖ dplyr::filter() masks stats::filter()
✖ dplyr::lag() masks stats::lag()
ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(packcircles)
Warning: package 'packcircles' was built under R version 4.5.3
library(ggplot2)library(gganimate)
Warning: package 'gganimate' was built under R version 4.5.3
library(gifski)
Warning: package 'gifski' was built under R version 4.5.3
Explanation: Used for data manipulation, circular packing, plotting, and animation.
STEP 3: Prepare Data
set.seed(1)# Use Region as Districtdata$District <- data$Region# Simulate Year and Populationdata$Year <-sample(2018:2020, nrow(data), replace =TRUE)data$Population <-sample(10000:100000, nrow(data), replace =TRUE)df <- data %>%group_by(District, Year) %>%summarise(Population =sum(Population), .groups ="drop")
Explanation: Since the dataset does not contain population data, values are simulated for demonstration.