Skip to contents

The goal of mapindia is to simplify mapping of the Indian subcontinent. It has convenient functions for plotting choropleths, visualizing spatial data, and handling state/district codes.

Note: The 3-digit district codes were merged with the 2-digit state codes to create a 5-digit district code.

Installation

To install mapindia from CRAN:

install.packages("mapindia")

You can install the development version of mapindia from GitHub with:

# install.packages("pak")
pak::pak("shubhamdutta26/mapindia")

Example

Plot a basic map of the Indian subcontinent with states and districts:

library(mapindia)
library(ggplot2)
library(patchwork)

states <- plot_india("states") +
  geom_sf(fill= "antiquewhite") +
  theme(panel.grid.major = 
          element_line(color = gray(.5), linetype = "dashed", linewidth = 0.2), 
        panel.background = element_rect(fill = "aliceblue"))

districts <- plot_india("districts") +
  geom_sf(fill= "gray") +
  theme(panel.grid.major = 
          element_line(color = gray(.5), linetype = "dashed", linewidth = 0.2), 
        panel.background = element_rect(fill = "aliceblue"))

states + districts

Visualize zones such as the Central or Eastern Zonal Councils:

central <- plot_india("states", include = .central, exclude = "UK", labels = TRUE) +
  geom_sf(fill= "antiquewhite")

east <- plot_india("states", include = .east, labels = FALSE)

central + east

Visualize individual states such as the West Bengal or Tamil Nadu:

mh <- plot_india("districts", include = "MH")

tn <- plot_india("state", include = "Tamil Nadu", labels = FALSE)

mh + tn

Use your data for visualizations as well:

statepop2011 <- plot_india("states", data = statepop, values = "pop_2011") +
  scale_fill_continuous(low = "blue", high = "yellow", guide = "none")

wbpop2011 <- plot_india("districts", data = wb_2011, values = "pop_2011", include = "WB") +
  scale_fill_continuous(low = "green", high = "red", guide = "none")

statepop2011 + wbpop2011