Introduction

I have plotted the population of Indiaโ€™s cities on a map on a map of India.

Data

The datasource used is from: https://worldpopulationreview.com/countries/cities/india

data <- read.csv("City.csv", header=TRUE)
head(data)
##        name      pop                                       location
## 1    Mumbai 12691836 https://www.google.com/maps/?q=19.0728,72.8826
## 2     Delhi 10927986  https://www.google.com/maps/?q=28.652,77.2315
## 3 Bengaluru  5104047 https://www.google.com/maps/?q=12.9719,77.5937
## 4   Kolkata  4631392  https://www.google.com/maps/?q=22.5626,88.363
## 5   Chennai  4328063 https://www.google.com/maps/?q=13.0878,80.2785
## 6 Ahmedabad  3719710 https://www.google.com/maps/?q=23.0258,72.5873

Geting latitude and longitude coordinates

data$latitude<- as.numeric(substring(data$location, regexpr("=", data$location) + 1,regexpr(",", data$location)-1 ))
data$longitude<- as.numeric(substring(data$location, regexpr(",", data$location) + 1))

Map

data<- data[0:15,]
lngmean<- mean(data$longitude)
latmean<- mean(data$latitude)

library(leaflet)
map <- data %>%
        leaflet() %>%
        addTiles() %>%
        setView(lng = lngmean, lat = latmean, zoom = 4.5) %>%
        addMarkers(popup = paste("City: ", data$name, "<br>",
                                 "Population: ", data$pop), 
        lng = data$longitude, lat = data$latitude)%>% 
        addCircles(weight=1,radius=data$Population/100)
## Assuming "longitude" and "latitude" are longitude and latitude, respectively
map