Thursday, 12 January 2017

Creating Charts and Maps with ggplot2

Data Visualization with R

In this article, I will work on the following visualizations:

Rudimentary Visualizations:

  1. Scatter plot
  2. Histogram
  3. Line Plot
  4. Bar chart
  5. Box plot

Advanced Visualizations:

  1. Area Chart
  2. Heat Map
  3. Correlogram
  4. Hexbin Plot
  5. Mosaic Map
  6. Map Visualization
  7. 3D Graphs

I will work on the 'Big Mart data' data sets as well as some of the small data sets provided in the HistData package.


#load the Big Mart data set
data=read.csv("/Users/Srinka_MAC/Documents/Praxis/Term3/DVL/BigMartDataset.csv")
train = data



Rudimentary Visualizations:

Scatter Plot

library(ggplot2)          

ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point() + scale_x_continuous("Item Visibility", breaks = seq(0,0.35,0.05))+ scale_y_continuous("Item MRP", breaks = seq(0,270,by = 30))+ theme_bw() 






ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) + 
  scale_x_continuous("Item Visibility", breaks = seq(0,0.35,0.05))+
  scale_y_continuous("Item MRP", breaks = seq(0,270,by = 30))+
  theme_bw() + labs(title="Scatterplot")






ggplot(train, aes(Item_Visibility, Item_MRP)) + geom_point(aes(color = Item_Type)) + 
  scale_x_continuous("Item Visibility", breaks = seq(0,0.35,0.05))+
  scale_y_continuous("Item MRP", breaks = seq(0,270,by = 30))+ 

  theme_bw() + labs(title="Scatterplot") + facet_wrap( ~ Item_Type)



















Histogram

library(HistData)
library(RColorBrewer)

data(VADeaths)
par(mfrow=c(2,3))
hist(VADeaths,breaks=10, col=brewer.pal(3,"Set3"),main="Set3 3 colors")
hist(VADeaths,breaks=3 ,col=brewer.pal(3,"Set2"),main="Set2 3 colors")
hist(VADeaths,breaks=7, col=brewer.pal(3,"Set1"),main="Set1 3 colors")
hist(VADeaths,,breaks= 2, col=brewer.pal(8,"Set3"),main="Set3 8 colors")
hist(VADeaths,col=brewer.pal(8,"Greys"),main="Greys 8 colors")
hist(VADeaths,col=brewer.pal(8,"Greens"),main="Greens 8 colors")

















Line Plot

plot(AirPassengers,type="l")



Bar Chart

ggplot(train, aes(Outlet_Establishment_Year)) + geom_bar(fill = "red")+theme_bw()+
  scale_x_continuous("Establishment Year", breaks = seq(1985,2010)) + 
  scale_y_continuous("Count", breaks = seq(0,1500,150)) +
  coord_flip()+ labs(title = "Bar Chart") + theme_gray()





Vertical Bar Chart

ggplot(train, aes(Item_Type, Item_Weight)) + geom_bar(stat = "identity", fill = "darkblue") + 
  scale_x_discrete("Outlet Type")+ 
  scale_y_continuous("Item Weight", breaks = seq(0,15000, by = 500))+ 
  theme(axis.text.x = element_text(angle = 90, vjust = 0.5)) + labs(title = "Bar Chart") 





Stacked Bar chart

ggplot(train, aes(Outlet_Location_Type, fill = Outlet_Type)) + geom_bar()+
  labs(title = "Stacked Bar Chart", x = "Outlet Location Type", y = "Count of Outlets")




Box plot

ggplot(train, aes(Outlet_Identifier, Item_Outlet_Sales)) + geom_boxplot(fill = "red")+
  scale_y_continuous("Item Outlet Sales", breaks= seq(0,15000, by=500))+
  labs(title = "Box Plot", x = "Outlet Identifier")



Advanced Visualizations:


Area Chart

ggplot(train, aes(Item_Outlet_Sales)) + geom_area(stat = "bin", bins = 30, fill = "steelblue") + 
  scale_x_continuous(breaks = seq(0,11000,1000))+ labs(title = "Area Chart", 
                                                       x = "Item Outlet Sales", y = "Count") 



Heat Map

ggplot(train, aes(Outlet_Identifier, Item_Type))+geom_raster(aes(fill = Item_MRP))+
 labs(title ="Heat Map", x = "Outlet Identifier", y = "Item Type")+
scale_fill_continuous(name = "Item MRP") 



Correlogram

install.packages("corrgram")
library(corrgram)

corrgram(train, order=NULL, panel=panel.shade, text.panel=panel.txt,
         main="Correlogram") 



Hexbin plot

library(hexbin)

a=hexbin(diamonds$price,diamonds$carat,xbins=40)
library(RColorBrewer)
plot(a)




library(RColorBrewer)
rf <- colorRampPalette(rev(brewer.pal(40,'Set3')))
hexbinplot(diamonds$price~diamonds$carat, data=diamonds, colramp=rf)



Mosaic Plot

data(HairEyeColor)
mosaicplot(HairEyeColor)




Map Visualization

devtools::install_github("rstudio/leaflet")

library(magrittr)
library(leaflet)
m <- leaflet() %>%
  addTiles() %>%  # Add default OpenStreetMap map tiles
  addMarkers(lng=88.3630400, lat=22.5626300)
m  # Print the map





3D Graph

library(Rcmdr)
data(iris, package="datasets")
scatter3d(Petal.Width~Petal.Length+Sepal.Length|Species, data=iris, fit="linear", residuals=TRUE, parallel=FALSE, bg="white", axis.scales=TRUE, grid=TRUE, ellipsoid=FALSE)





library(lattice)
attach(iris)# 3d scatterplot by factor level

cloud(Sepal.Length~Sepal.Width*Petal.Length|Species, main="3D Scatterplot by Species")



xyplot(Sepal.Width ~ Sepal.Length, iris, groups = iris$Species, pch= 20)




















1 comment: