Graphics dalam R
• Graphs dibangun di R dengan dua prinsip
1) Membangun Grafik Dasar
fungsi Graphics
• fungsi dengan level tinggi
– Membuat grafik dari data
• Fungsi dengan level rendah
– Modifikasi grafik yang telah dibuat
• Parameter grafik
– Mengkontrol tampilan grafik
• fungsi dengan level tinggi
– Membuat grafik dari data
• Fungsi dengan level rendah
– Modifikasi grafik yang telah dibuat
• Parameter grafik
Fungsi Grafik Tingkat Tinggi
• plot()
• hist()
• barplot()
• boxplot()
• plot()
• hist()
• barplot()
• boxplot()
Fungsi Grafik tingkat Rendah
• points()
• lines()
• abline()
• text()
• mtext()
• title()
• legend()
etc
• points()
• lines()
• abline()
• text()
• mtext()
• title()
• legend()
etc
Graphical parameters
• Parameter diset dengan perintah par()
• Mengkontrol bagaimana tampilan grafik
Graphical Type
• Histogram
• Box Plot
• Bar Plot
• Line Plot
• Histogram
• Box Plot
• Bar Plot
• Line Plot
histogram
• Data
x1=c(1,2,3,4,4,6,7,10,9)
• Plot histogram:
histogram
• Plot as probability
histogram
• Plot as probability
hist(x1,prob=T)
• Add density curve
histogram
• Plot as probability
hist(x1,prob=T)
• Add density curve
lines(density(x1),col= “red”)
• Add “rug plot” to locate
data
rug(x1,col="blue")
• Plot as probability
hist(x1,prob=T)
• Add density curve
lines(density(x1),col= “red”)
• Add “rug plot” to locate
data
boxplot
• boxplot function
boxplot
• boxplot function
boxplot(x1)• Add title
title(main="Boxplot of x1")• boxplot function
boxplot(x1)• Add title
title(main="Boxplot of x1")boxplot
• boxplot function
boxplot(x1)• Add title
title(main="Boxplot of x1")• Plot horizontally
boxplot(x1,main="Boxplot of x1",horizontal=T)• boxplot function
boxplot(x1)• Add title
title(main="Boxplot of x1")• Plot horizontally
boxplot(x1,main="Boxplot of x1",horizontal=T)Boxplot >1
• Data
x1=c(1,2,3,4,4,6,7,10,9)
x2=c(2,2,2,3,4,2,3,4,1) x3=c(2,3,7,4,8,6,9,11,2)
boxplot
boxplot(x1,x2,x3) title(main=“three
boxplot
boxplot(x1,x2,x3) title(main=“three boxplots”)OR
bp3<-data.frame(x1,x2,x3) boxplot(bp3) boxplot(x1,x2,x3) title(main=“three boxplots”)OR
bp3<-data.frame(x1,x2,x3) boxplot(bp3)boxplot
boxplot(x1,x2,x3) title(main=“three boxplots”)OR
bp3<-data.frame(x1,x2,x3) boxplot(bp3) boxplot(x1,x2,x3) title(main=“three boxplots”)OR
bp3<-data.frame(x1,x2,x3) boxplot(bp3)barplot
barplot
barplot
barplot(x1) barplot(x1,col=rainbow(20)) barplot(x1,col=rainbow(20), horizontal=T) barplot(x1) barplot(x1,col=rainbow(20)) barplot(x1,col=rainbow(20), horizontal=T)Barplots data dalam group
Usia A B C D 50-54 11.7 8.7 15.4 8.4 55-59 18.1 11.7 24.3 13.6 60-64 26.9 20.3 37.0 19.3 65-69 41.0 30.9 54.6 35.1 70-74 66.0 54.3 71.1 50.0 Usia A B C D 50-54 11.7 8.7 15.4 8.4 55-59 18.1 11.7 24.3 13.6 60-64 26.9 20.3 37.0 19.3 65-69 41.0 30.9 54.6 35.1 70-74 66.0 54.3 71.1 50.0Barplot
A=c(11.7,18.1,26.9,41,66) B=c(8.7,11.7,20.3,30.9,54.3) C=c(15.4,24.3,37,54.6,71.1) D=c(8.4,13.6,19.3,35.1,50) mydata=data.frame(A,B,C,D) rownames(mydata)=c("50-54","55-59","60-64","65-69","70-74")mydata2=as.matrix(mydata)
A=c(11.7,18.1,26.9,41,66) B=c(8.7,11.7,20.3,30.9,54.3) C=c(15.4,24.3,37,54.6,71.1) D=c(8.4,13.6,19.3,35.1,50) mydata=data.frame(A,B,C,D) rownames(mydata)=c("50-54","55-59","60-64","65-69","70-74")mydata2=as.matrix(mydata)
Barplots for grouped data
Barplots for grouped data
barplot(mydata2) barplot(mydata2,
Barplots for grouped data
barplot(mydata2) barplot(mydata2, col=rainbow(5),legend=T) barplot(mydata, col=rainbow(5), legend=T,beside=T) barplot(mydata2) barplot(mydata2, col=rainbow(5),legend=T) barplot(mydata, col=rainbow(5), legend=T,beside=T)scatterplot
x1=c(1,2,3,4,4,6,7,10,9)
plot(x1)
x1=c(1,2,3,4,4,6,7,10,9)
plot(x1)
scatterplot
scatterplot
par(mfrow=c(3,2)) plot(x1,type="p",main="type p: points") plot(x1,type="l",main="type l: lines") plot(x1,type="b",main="type b: both") plot(x1,type="o",main="type o: overplot") plot(x1,type="h",main="type h: histogram") plot(x1,type="s",main="type s: steps") par(mfrow=c(3,2)) plot(x1,type="p",main="type p: points") plot(x1,type="l",main="type l: lines") plot(x1,type="b",main="type b: both") plot(x1,type="o",main="type o: overplot") plot(x1,type="h",main="type h: histogram") plot(x1,type="s",main="type s: steps")Plotting symbols, par(pch)
• Default : 25 plotting characters dikontrol oleh
pch parameter Exp :pch = n
• Parameter pch dapat berupa character, ex pch
= “x” dan dapat juga berupa vector
• Default : 25 plotting characters dikontrol oleh
pch parameter Exp :pch = n
• Parameter pch dapat berupa character, ex pch
= “x” dan dapat juga berupa vector
Plotting symbols, par(pch)
x<-rep(1:5,times=5) y<-rep(1:5,each=5) par(xpd=T) plot(x,y,type="p",pch=1:25 ,cex=3,axes=F,ann=F,bty= "n",bg="red") title(main="Data symbols 1:25") text(x,y,labels=1:25,pos=1 ,offset=1)x and y are both vectors of length 25 xpd controls “clipping” of graphics,
allows data to be plotted outside the main plot area.
pch is a vector 1:25, so each point has a unique symbol
cex controls the symbol size bg is background colour
axes = F and ann = F stops the drawing of axes and labels
text adds labels to the points, x and y give locations, labels contains the text, pos=1 puts the text below the points x<-rep(1:5,times=5) y<-rep(1:5,each=5) par(xpd=T) plot(x,y,type="p",pch=1:25 ,cex=3,axes=F,ann=F,bty= "n",bg="red") title(main="Data symbols 1:25") text(x,y,labels=1:25,pos=1 ,offset=1)
x and y are both vectors of length 25 xpd controls “clipping” of graphics,
allows data to be plotted outside the main plot area.
pch is a vector 1:25, so each point has a unique symbol
cex controls the symbol size bg is background colour
axes = F and ann = F stops the drawing of axes and labels
text adds labels to the points, x and y give locations, labels contains the text, pos=1 puts the text below the points
Plotting symbols, par(pch)
tb=c(160, 165, 175, 180, 185) bb=c(55,60,70,75,80)
Plotting symbols: size and width
• symbol size controlled by cex
– cex=n plots a figure n times the default size
• Line width controlled by lwd
– lwd=n gives the width of the line
• symbol size controlled by cex
– cex=n plots a figure n times the default size
• Line width controlled by lwd
Plotting symbols: size and width
x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd= x,cex=y,xlim=c(0,5),ylim=c (0,5),bty="n", ann=F) title(main="R plottingsymbols: size and width", xlab="Width (lwd)",
ylab="Size (cex)")
x and y generated as in previous example
Also act as vectors of width: lwd=x and size:
cex=y
pch=3 only uses a single symbol x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd= x,cex=y,xlim=c(0,5),ylim=c (0,5),bty="n", ann=F) title(main="R plotting
symbols: size and width", xlab="Width (lwd)",
ylab="Size (cex)")
x and y generated as in previous example
Also act as vectors of width: lwd=x and size:
cex=y
Plotting symbols: colour
• Colour of objects controlled by “col”
• col can be argument to high or low level
functions: outcome determined by context
• Colours specified a number of ways:
– by name: see colours() for all names colours
– by integer: referring to locations in the current
palette: see palette()
– as a location in rgb or other colour space as
• Colour of objects controlled by “col”
• col can be argument to high or low level
functions: outcome determined by context
• Colours specified a number of ways:
– by name: see colours() for all names colours
– by integer: referring to locations in the current
palette: see palette()
Plotting symbols: colour
• default palette:
> palette()
[1] "black" "red" "green3" "blue" "cyan" "magenta" "yellow" "gray"
• integer values for colours refer to locations in
the palette, recycled as necessary
• default palette:
> palette()
[1] "black" "red" "green3" "blue" "cyan" "magenta" "yellow" "gray"
• integer values for colours refer to locations in
the palette, recycled as necessary
Plotting symbols: colour
function () {x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,l wd=x,cex=y, col=1:25, xlim=c(0,5),ylim=c(0,5) ,bty="n", ann=F) title(main="R plotting symbols: size and width",xlab="Width (lwd)", ylab="Size (cex)") }
Identical to previous example, but with a colour argument added to the plot function
col here is a vector 1:25, only 8 colours in the default palette, so they will be recycled function () {x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,l wd=x,cex=y, col=1:25, xlim=c(0,5),ylim=c(0,5) ,bty="n", ann=F) title(main="R plotting symbols: size and width",
xlab="Width (lwd)", ylab="Size (cex)") }
Plotting symbols: colour
x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,l wd=x,cex=y, col=1:25, xlim=c(0,5),ylim=c(0,5) ,bty="n", ann=F) title(main="R plotting symbols: size and width", xlab="Width (lwd)", ylab="Size (cex)") x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,l wd=x,cex=y, col=1:25, xlim=c(0,5),ylim=c(0,5) ,bty="n", ann=F) title(main="R plotting symbols: size and width",xlab="Width (lwd)", ylab="Size (cex)")
Plotting symbols: colour
• Built-in colour packages:
– rainbow()
Vary from red to violet
– heat.colors()
whiteorangered
– terrain.colors()
whitebrowngreen
– topo.colors()
whitebrowngreenblue
– grey()
shades of grey
• Built-in colour packages:
– rainbow()
Vary from red to violet
– heat.colors()
whiteorangered
– terrain.colors()
whitebrowngreen
– topo.colors()
whitebrowngreenblue
Plotting symbols: colour
x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=rainbow(25), xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plottingsymbols: size and width", xlab="Width (lwd)", ylab="Size (cex)") x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=rainbow(25), xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plotting
symbols: size and width", xlab="Width (lwd)",
Plotting symbols: colour
x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=heat.colors(25), xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plottingsymbols: size and width", xlab="Width (lwd)", ylab="Size (cex)") x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=heat.colors(25), xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plotting
symbols: size and width", xlab="Width (lwd)",
Plotting symbols: colour
x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=grey(1:25)/25, xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plottingsymbols: size and width", xlab="Width (lwd)", ylab="Size (cex)") x<-rep(1:5,times=5) y<-rep(1:5,each=5) plot(x,y,type="p",pch=3,lwd =x,cex=y, col=grey(1:25)/25, xlim=c(0,5),ylim=c(0,5),b ty="n", ann=F) title(main="R plotting
symbols: size and width", xlab="Width (lwd)",
Plot dengan built in color
tb=c(160, 165, 175, 180, 185)
bb=c(55,60,70,75,80)
tb=c(160, 165, 175, 180, 185)
bb=c(55,60,70,75,80)
Plotting two variables: scatterplot
plot(x=bb,y=tb) Alternative formulations: plot(bb~tb) plot(x=bb,y=tb) Alternative formulations: plot(bb~tb)Plotting two variables: scatterplot
Different symbols, specified by
pch parameter
Plotting two variables: scatterplot
plot(bb~tb, type=“l”)
Plotting two variables: scatterplot
plot(bb~tb, type=“l”,
Types of lines, par(lty)
x<-1:10 plot(x,y=rep(1,10),ylim=c(1,6.5), type="l",lty=1,axes=F,ann=F) title(main="Line Types") for(i in 2:6) {lines(x,y=rep(i,10),lty=i) } axis(2,at=1:6,tick=F,las=1) linenames<-paste("Type",1:6,":",c("solid"," dashed","dotted","dotdash","long dash","twodash")) text(2,(1:6)+0.25,labels=linenames) box() x<-1:10 plot(x,y=rep(1,10),ylim=c(1,6.5), type="l",lty=1,axes=F,ann=F) title(main="Line Types") for(i in 2:6) {lines(x,y=rep(i,10),lty=i) } axis(2,at=1:6,tick=F,las=1) linenames<-paste("Type",1:6,":",c("solid"," dashed","dotted","dotdash","long dash","twodash")) text(2,(1:6)+0.25,labels=linenames) box()tb=c(160, 165, 175, 180, 185)
bb=c(55,60,70,75,80)
tb=c(160, 165, 175, 180, 185)
bb=c(55,60,70,75,80)
Adding to plots: lines
plot(bb,tb)
reg<-lm(tb~bb)
abline(reg,
col="red",lty=2)
plot(bb,tb)
reg<-lm(tb~bb)
abline(reg,
col="red",lty=2)
plot(bb,tb)
reg<-lm(tb~bb)
abline(reg, col="red",lty=2)
abline(v=60,col="red")
plot(bb,tb)
reg<-lm(tb~bb)
abline(reg, col="red",lty=2)
abline(v=60,col="red")
Adding to plots: legends
y1=c(2, 5, 4, 5, 12) y2=c(2,3,4,5,4)
plot(y1, type="o", col="blue",
ylim=c(0,12),xlab="tahun",ylab="jumlah")
lines(y2, type="o", pch=22, lty=2, col="red")
title(main="Contoh aja", col.main="red", font.main=4)
legend(1, 6, c("A","B"), cex=0.8, col=c("blue","red"), pch=21:22, lty=1:2) y1=c(2, 5, 4, 5, 12)
y2=c(2,3,4,5,4)
plot(y1, type="o", col="blue",
ylim=c(0,12),xlab="tahun",ylab="jumlah")
lines(y2, type="o", pch=22, lty=2, col="red")
title(main="Contoh aja", col.main="red", font.main=4)
Tugas 1 (Data Mhs Stat)
Nama Pek ORTU IPK Kelas Asal Daerah
Fulan PNS 3.4 A Medan
Dede PNS 2.7 A Medan
Sondakh WIRASWASTA 2.6 B Jakarta Nurdin TNI 2.3 A Bandung John WIRASWASTA 3.5 A Bandung Lung WIRASWASTA 3.7 B Jakarta Lung WIRASWASTA 3.7 B Jakarta Yaris WIRASWASTA 3.1 B Jakarta
Asep TNI 2.9 B Bandung
Dedi TNI 2.3 B Bandung Zeni PNS 2.8 A Jakarta
Nia PNS 2.9 A Jakarta
Sinto PNS 3.0 B Padang
Cucu TNI 3.1 B Padang
Fika TNI 3.4 A Medan