R - Graphics
Bar chart
Let us start with a simple bar chart graphing salary from the emp table.
emp <- read.table("https://training-course-material.com/images/9/97/Emp.txt",header=TRUE)
barplot(emp$SAL)
Error creating thumbnail: File missing
We can define the title of the graph with 'main' function.
barplot(emp$SAL, main="Salary Bar Chart")
Error creating thumbnail: File missing
We can also label Y-Axis using 'ylab' function and extract the X-Axis values from the ENAME column using 'names' function.
barplot(emp$SAL, main="Salary Bar Chart", ylab="Salary", names.arg=emp$ENAME, las=2)
Error creating thumbnail: File missing
Now let's make it pretty by using some color.
barplot(emp$SAL, main="Salary Bar Chart", ylab="Salary", names.arg=emp$ENAME, las=2, col=rainbow(15))
Error creating thumbnail: File missing
Legend
l <- list(MANAGER=2,
CLERK=3,
SALESMAN=4,
PERSIDENT=5,
ANALYST=6)
jobcolors <- as.integer(l[emp$JOB]);
barplot(emp$SAL,names.arg = emp$ENAME, las=2
,col=jobcolors)
legend("top",
legend = names(l),
fill = as.integer(l))
We can also generate colours automatically
jobs = as.character(unique(emp$JOB))
noofcol=length(jobs)
cols_no <- rainbow(noofcol)
cols = cols_no;
# list l should have $MANAGER -> FF0000FF, $PRESIDENT -> ......
names(cols) <- jobs
position_cols <- cols[as.character(emp$JOB)]
barplot(emp$SAL,names.arg = emp$ENAME, las=2
,col=position_cols)
legend("right",
legend = jobs,
fill = cols_no
)
par function
- In the previous example, where the las paramter is commign from?
- If you try to type ?las
- Las come from par function
- Stands for Label Axis Style
Color coding for JOB
l <- list(MANAGER=2,
CLERK=3,
SALESMAN=4,
PERSIDENT=5,
ANALYST=6)
barplot(emp$SAL,names.arg = emp$ENAME, las=2
,col=as.integer(l[emp$JOB]))Pie Chart
Let us make a simple Pie Chart graphing the salary from the emp table.
pie(emp$SAL) TODO: chart
It is pretty useless unless we have labels right
Now let's add a title, label with names of the employees and change the colors.
pie(emp$SAL, main="Salary Pie Chart", labels=emp$ENAME, col=rainbow(15))
Error creating thumbnail: File missing
We can also use percentage of the salary to label the pie chart.
SAL_labels <- round(emp$SAL/sum(emp$SAL) * 100, 1)
SAL_labels <- paste(SAL_labels,"%")
SAL_labels <- paste(SAL_labels,emp$ENAME)
pie(emp$SAL, main="Salary Pie Chart", labels=SAL_labels, col=rainbow(15))
Table Function
Table function returns frequency of a factor > table(emp$DEPTNO)
10 20 30 3 5 6
How many people work in specific departments
par(mar=c(0,0,0,0)) pie(table(emp$DEPTNO))
Box Plot
Box Plots graphically depict groups of numerical data through minimum, lower quartile (Q1), median (Q2), upper quartile (Q3) and maximum points.
boxplot( ) function is used to provide point identification, labels, and a formula interface for box plots without a grouping variable.
Let us draw a simple box plot for salary.
boxplot(emp$SAL)
Error creating thumbnail: File missing
We can added the head, label and some colors.
boxplot(emp$SAL, main="Salary Box Plot", ylab="Salary", col=c("yellow"))
Error creating thumbnail: File missing
Quantile-Comparison Plot
Quantile-Comparison Plot is a probability plot, a graphical way of comparing two probability distributions by plotting their quantiles against each other. We can use qqPlot() function to create a Q-Q Plot.
install.packages("EnvStats")
library(EnvStats)
qqPlot(emp$SAL, dist="norm")
Error creating thumbnail: File missing
Let us add the head, label for y axis and some colors.
qqPlot(emp$SAL, dist="norm", main="Salary Q-Q Plot", ylab="Salary", col=rainbow(15))
Error creating thumbnail: File missing
Plot
We can use plot() function for plotting of R objects.
Let us use gpa table to create a simple Plot.
gpa <- read.table("https://training-course-material.com/images/8/86/Study-time-gpa.txt",h=T)
plot(gpa)
Error creating thumbnail: File missing
Now let us make it pretty.
plot(gpa, main="GPA-Houors Plot", col="hotpink")
Error creating thumbnail: File missing
Scatter Plot
We can use scatter plots when a variable exists that is under the influence of the experimenter.
GPA is under the control of the hours on the gpa table so we can create the scatter plot using scaterplot() function.
library('car')
scatterplot(GPA~Hours, reg.line=lm, smooth=TRUE,
spread=TRUE, boxplots='xy', span=0.5, data=gpa)
Error creating thumbnail: File missing
XY Plot
library(lattice)
xyplot(GPA ~ Hours, pch=16,main="GPA-Houors Plot",
auto.key=list(border=TRUE), par.settings = simpleTheme(pch=16),
scales=list(x=list(relation='same'), y=list(relation='same')), data=gpa)
Error creating thumbnail: File missing
Graph Exercise
Use 'sales' table and 'gpa' table for the questions below
sales <- read.table("https://training-course-material.com/images/8/8f/Sales.txt",header=TRUE)
gpa <- read.table("https://training-course-material.com/images/8/86/Study-time-gpa.txt",h=T)
- Create a Barchart for the sales by country (use 'sales' table).
- Create a Pie Chart with the percentage of the total sales by country (use 'sales') table.
- Create a Box Plot for the sales (use 'sales' table).
- Create a Plot (use 'gpa' table).
Answers
Answers are in source code 1. Create a Barchart for the sales by country.
Error creating thumbnail: File missing
2. Create a Pie Chart with the percentage of the total sales by country.
Error creating thumbnail: File missing
3. Create a Box Plot for the sales.
Error creating thumbnail: File missing
4. Create a Plot using the gpa table.
Error creating thumbnail: File missing