Area chart

Author

Greeshma(1nt23is078) ,Kumkum(1nt23is106)

Use area charts to visualize monthly rainfall trends in 5 Indian cities, highlighting seasonal patterns.

Step 1: Load the necessary libraries

library(ggplot2)
library(dplyr)

Attaching package: 'dplyr'
The following objects are masked from 'package:stats':

    filter, lag
The following objects are masked from 'package:base':

    intersect, setdiff, setequal, union
library(readr)
library(tidyr)
library(stringr)

Step2:Load the rainfall data

rainfall_data <- read.csv("C:/Users/kumku/Downloads/dvfinalll.csv")
head(rainfall_data)
                STATE_UT_NAME DISTRICT   JAN  FEB  MAR   APR   MAY   JUN   JUL
1 ANDAMAN And NICOBAR ISLANDS  NICOBAR 107.3 57.9 65.2 117.0 358.5 295.5 285.0
2                   RAJASTHAN     TONK   5.0  5.3  2.7   3.0  10.1  56.1 219.7
3                   RAJASTHAN  UDAIPUR   2.8  2.0  4.3   2.2   8.2  73.6 207.5
4                   RAJASTHAN  DHOLPUR   8.6  9.5  7.0   2.5   8.6  54.5 211.7
5                   RAJASTHAN    BARAN   7.1  3.2  2.8   1.7   6.5  73.3 295.3
6                     GUJARAT   AMRELI   0.6  0.2  1.4   0.2   3.2 104.8 190.8
    AUG   SEP   OCT   NOV   DEC ANNUAL Jan.Feb Mar.May Jun.Sep Oct.Dec
1 271.9 354.8 326.0 315.2 250.9 2805.2   165.2   540.7  1207.2   892.1
2 210.5  79.7  13.9   4.9   3.0  613.9    10.3    15.8   566.0    21.8
3 203.7 106.5  15.2  11.1   2.6  639.7     4.8    14.7   591.3    28.9
4 266.1 117.7  26.3   4.3   5.3  722.1    18.1    18.1   650.0    35.9
5 303.6 120.0  25.2   9.7   4.3  852.7    10.3    11.0   792.2    39.2
6 126.2  96.4  25.4  16.6   1.5  567.3     0.8     4.8   518.2    43.5

Step3:Reshape data from Wide to Long format

Transform the data so that each row represents a single observation of rainfall for a specific district and month.

monthly_data <- rainfall_data %>%
  pivot_longer(cols = JAN:DEC, names_to = "Month", values_to = "Rainfall")

Step 4:Set the order of the months

Ensure that months are ordered chronologically for accurate plotting.

monthly_data$Month <- factor(monthly_data$Month,
                             levels = c("JAN", "FEB", "MAR", "APR", "MAY", "JUN","JUL", "AUG", "SEP", "OCT", "NOV", "DEC"),
                             ordered = TRUE)

Step 5:Select specific cities for analysis

Choose the cities you want to analyze.

selected_districts <- c("Shimoga", "Udaipur", "Chennai", "Kolkata", "Thane")

Step 6:filter data for selected districts.

Subset the data to include only the selected districts

unique(monthly_data$DISTRICT)
 [1] "NICOBAR"        "TONK"           "UDAIPUR"        "DHOLPUR"       
 [5] "BARAN"          "AMRELI"         "BHAVNAGAR"      "JAMNAGAR"      
 [9] "JUNAGADH"       "KUTCH"          "RAJKOT"         "SURENDRANAGAR" 
[13] "PORBANDAR"      "DNH"            "DAMAN"          "DIU"           
[17] "MUMBAI CITY"    "RAIGAD"         "RATNAGIRI"      "THANE"         
[21] "SINDHUDURG"     "HYDERABAD"      "KARIMNAGAR"     "KHAMMAM"       
[25] "MAHABUBNAGAR"   "MEDAK"          "NALGONDA"       "NIZAMABAD"     
[29] "WARANGAL"       "RANGAREDDY"     "ANANTAPUR"      "CHITTOOR"      
[33] "KUDDAPAH"       "KURNOOL"        "VELLORE"        "COIMBATORE"    
[37] "DHARMAPURI"     "KANYAKUMARI"    "CHENNAI"        "MADURAI"       
[41] "DHARWAD"        "GULBARGA"       "YADGIR"         "RAICHUR"       
[45] "BAGALKOTE"      "GADAG"          "HAVERI"         "KOPPAL"        
[49] "BANGALORE RUR"  "BELLARY"        "CHIKMAGALUR"    "CHITRADURGA"   
[53] "KODAGU"         "HASSAN"         "KOLAR"          "MANDYA"        
[57] "MYSORE"         "SHIMOGA"        "TUMKUR"         "BANGALORE URB" 
[61] "CHAMARAJANAGA"  "DAVANGERE"      "RAMNAGAR(BNGR)" "CHICKBALLAPUR" 
[65] "ALAPPUZHA"      "CANNUR"         "ERNAKULAM"      "KOTTAYAM"      
[69] "KOZHIKODE"      "MALAPPURAM"     "PALAKKAD"       "KOLLAM"        
[73] "THRISSUR"       "THIRUVANANTHA"  "IDUKKI"         "KASARGOD"      
[77] "PATHANAMTHITTA" "WAYANAD"        "LAKSHADWEEP"   
# Convert both sides to lowercase to avoid mismatch
monthly_data <- monthly_data %>%
  mutate(DISTRICT = str_to_lower(DISTRICT))

selected_districts <- c("shimoga", "udaipur", "chennai", "tumkur", "thane")

rainfall_filtered <- monthly_data %>%
  filter(DISTRICT %in% selected_districts)

# View the result
#head(rainfall_filtered)

summary(rainfall_filtered$Rainfall)
   Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
   0.20    5.80   44.05  117.21  141.30  973.70 
rainfall_filtered %>% filter(is.na(Rainfall))
# A tibble: 0 × 9
# ℹ 9 variables: STATE_UT_NAME <chr>, DISTRICT <chr>, ANNUAL <dbl>,
#   Jan.Feb <dbl>, Mar.May <dbl>, Jun.Sep <dbl>, Oct.Dec <dbl>, Month <ord>,
#   Rainfall <dbl>
rainfall_filtered <- rainfall_filtered %>%
  filter(!is.na(Rainfall))