You are on page 1of 2

View(mtcars)

library(help=MASS)

## build bar chart


# 1. Make a freq table
Freq_table_mtcars = table(mtcars$gear)
Freq_table_mtcars
# 2. Use freq table in charting
barplot(Freq_table_mtcars)

# aesthetic changes
barplot(Freq_table_mtcars,ylim=c(0,20),main="Frequency distribution of
gears",col="darkred",
xlab="Gears",ylab="Frequency")

# frequency distribution at 2 levels


Freq_table_mtcars_2levels = table(mtcars$gear,mtcars$vs)
Freq_table_mtcars_2levels

# stacked bar plot


barplot(Freq_table_mtcars_2levels,col=c("grey",
"yellow","red"),legend=rownames(Freq_table_mtcars))

# to show the bars separately instead of stacked


barplot(Freq_table_mtcars_2levels,legend=rownames(Freq_table_mtcars),col=c("grey",
"yellow","red"),
beside=T)

## Pie chart
# Step 1
SumofWt = aggregate(wt~carb,mtcars,sum)

SumofWt

# step 2
pie(SumofWt$wt,SumofWt$carb)

# Another example
ElectronicData <- read.xls("Electronic with sales col adj.xls")
View(ElectronicData)
str(ElectronicData)
ProductSales = aggregate(Sales~Product,ElectronicData,FUN=sum)
ProductSales
pie(ProductSales$Sales,labels=ProductSales$Product)

sum(ProductSales$Sales)
# 2. Pie Chart with percentages and data labels added. Percentage format
ElecSalesTotalNew1= mutate(ProductSales, SalesPct = Sales/sum(Sales))
ElecSalesTotalNew1

# using SPRINTF function to convert to percentage format. Also vaue has to be *


with 100
ElecSalesTotalNew1$SalesPct1=sprintf(fmt="%.2f%%",ElecSalesTotalNew1$SalesPct*100)
View(ElecSalesTotalNew1)

ElecSalesTotalNew2 = mutate(ElecSalesTotalNew1,SalesPctWithName =
paste(Product,SalesPct1))
ElecSalesTotalNew2
pie(ElecSalesTotalNew2$Sales,labels=ElecSalesTotalNew2$SalesPctWithName)

## Histograms

View(HSB)
# 9 buckets by default
hist(HSB$math)

# customized number of bins


hist(HSB$math,breaks=20)

# x and y scatter plot


plot(HSB$read,HSB$write)

# heat maps
HsbSubset = as.matrix(HSB[1:10,c("read","write")])
HsbSubset

# Low marks are in red and good marks are towards white color. Very good marks are
white cell
heatmap(HsbSubset, scale= "column",cexRow = 1,cexCol = 1)

# Now running heat map. NA will supress dendogram which is not required
heatmap(HsbSubset,Rowv=NA, Colv = NA, scale= "column",cexRow = 1,cexCol = 1)

## word cloud

# Step 1: Calculate frequency table


Movies = read.csv("Movie_Metadata.csv")
View(Movies)
MoviesFreq = table(Movies$language)
View(MoviesFreq)
MoviesFreq1= as.data.frame(MoviesFreq)

library(plyr)
MoviesFreq2 = rename(MoviesFreq1,c(Var1="Movies"))
View(MoviesFreq2)

# Step 2: Run word cloud by defining frequency and word column


library(wordcloud)
wordcloud(words = MoviesFreq2$Movies , freq = MoviesFreq2$Freq, min.freq = 2,
max.words = 100, random.order = F)

You might also like