Visualisasi data merupakan bagian yang sangat penting untuk mengkomunikasikan hasil analisa yang telah kita lakukan. R mempunyai fungsi yang sederhana untuk membuat grafik yakni seperti plot(), barplot(), lineplot(), dotchart(), pie() maupun dari library lain seperti ggplot, ggplot2 dan lattice dengan kelebihan dan kekurangannya masing-masing.
a <- c(19,7,23,15,12)
b <- c(8,10,11,19,17)
x <- c(21, 62, 10,53)
city <- c("Jakarta","Bogor","Solo","Yogyakarta")plot(a,type = "o", col = "red", xlab = "Month", ylab = "Rain fall",
main = "Rain fall chart") #tunggalplot(a,type = "b",col = "red", xlab = "Month", ylab = "Rain fall",
main = "Rain fall chart")
lines(b, type = "b", col = "blue") #menambahkan line plot#Pada line chart kita dapat membuat plot tunggal hingga lebih dari satu line dalam suatu plot. terdapat beberapa type line yang dapat digunakan antara lain type=c("p","l","o","b","c","s")piepercent<- round(100*x/sum(x), 1)
city <- paste(city, piepercent, sep = " ")
city <- paste(city,"%", sep = "")
pie(x,labels = city, col=rainbow(length(city)),main="Pie Chart of City") library(plotrix) #3D Pie Chart
pie3D(x,labels=city,explode=0.1,main="Pie Chart of City ")#Pie chart lebih baik digunakan untuk memvisualisasikan data yang jumlah grupnya sedikit, selain itu pie char juga dapat dibuat dalam bentuk 3 dimensi dengan menginstall plotrix terlebih dahulu.dataku = read.csv("E://Data Diabetes.csv", sep =",", header = TRUE)
head(dataku) #menampilkan data teratas## Pregnancies Glucose BloodPressure SkinThickness Insulin BMI
## 1 6 148 72 35 0 33.6
## 2 1 85 66 29 0 26.6
## 3 8 183 64 0 0 23.3
## 4 1 89 66 23 94 28.1
## 5 0 137 40 35 168 43.1
## 6 5 116 74 0 0 25.6
## DiabetesPedigreeFunction Age keterangan
## 1 0.627 50 Tidak Diabetes
## 2 0.351 31 Tidak Diabetes
## 3 0.672 32 Diabetes
## 4 0.167 21 Tidak Diabetes
## 5 2.288 33 Tidak Diabetes
## 6 0.201 30 Tidak Diabetes
tail(dataku) #menampilkan data terakhir## Pregnancies Glucose BloodPressure SkinThickness Insulin BMI
## 763 9 89 62 0 0 22.5
## 764 10 101 76 48 180 32.9
## 765 2 122 70 27 0 36.8
## 766 5 121 72 23 112 26.2
## 767 1 126 60 0 0 30.1
## 768 1 93 70 31 0 30.4
## DiabetesPedigreeFunction Age keterangan
## 763 0.142 33 Tidak Diabetes
## 764 0.171 63 Tidak Diabetes
## 765 0.340 27 Tidak Diabetes
## 766 0.245 30 Tidak Diabetes
## 767 0.349 47 Tidak Diabetes
## 768 0.315 23 Tidak Diabetes
summary(dataku)## Pregnancies Glucose BloodPressure SkinThickness
## Min. : 0.000 Min. : 0.0 Min. : 0.00 Min. : 0.00
## 1st Qu.: 1.000 1st Qu.: 99.0 1st Qu.: 62.00 1st Qu.: 0.00
## Median : 3.000 Median :117.0 Median : 72.00 Median :23.00
## Mean : 3.845 Mean :120.9 Mean : 69.11 Mean :20.54
## 3rd Qu.: 6.000 3rd Qu.:140.2 3rd Qu.: 80.00 3rd Qu.:32.00
## Max. :17.000 Max. :199.0 Max. :122.00 Max. :99.00
## Insulin BMI DiabetesPedigreeFunction Age
## Min. : 0.0 Min. : 0.00 Min. :0.0780 Min. :21.00
## 1st Qu.: 0.0 1st Qu.:27.30 1st Qu.:0.2437 1st Qu.:24.00
## Median : 30.5 Median :32.00 Median :0.3725 Median :29.00
## Mean : 79.8 Mean :31.99 Mean :0.4719 Mean :33.24
## 3rd Qu.:127.2 3rd Qu.:36.60 3rd Qu.:0.6262 3rd Qu.:41.00
## Max. :846.0 Max. :67.10 Max. :2.4200 Max. :81.00
## keterangan
## Diabetes : 41
## Tidak Diabetes:727
##
##
##
##
str(dataku)## 'data.frame': 768 obs. of 9 variables:
## $ Pregnancies : int 6 1 8 1 0 5 3 10 2 8 ...
## $ Glucose : int 148 85 183 89 137 116 78 115 197 125 ...
## $ BloodPressure : int 72 66 64 66 40 74 50 0 70 96 ...
## $ SkinThickness : int 35 29 0 23 35 0 32 0 45 0 ...
## $ Insulin : int 0 0 0 94 168 0 88 0 543 0 ...
## $ BMI : num 33.6 26.6 23.3 28.1 43.1 25.6 31 35.3 30.5 0 ...
## $ DiabetesPedigreeFunction: num 0.627 0.351 0.672 0.167 2.288 ...
## $ Age : int 50 31 32 21 33 30 26 29 53 54 ...
## $ keterangan : Factor w/ 2 levels "Diabetes","Tidak Diabetes": 2 2 1 2 2 2 2 2 1 2 ...
attach(dataku)
#Membaca data di R dari file csv. head() untuk menampilkan data teratas dan tail() menampilan data terakhir. summary() untuk melihat ringkasan datanya dan str() untuk melihat detail banyaknya parameter dan tipe data setiap parameternya.plot(Glucose~Insulin, main= "Glucose vs Insulin",
xlab = "Insulin", ylab="Glucose",pch = 1,col=blues9)#Sactter plot untuk melihat adanya korelasi antara dua variabel kontinyu Glucose dan Insulinlibrary(car)## Loading required package: carData
scatterplotMatrix(~Glucose+Insulin+Pregnancies+BloodPressure+SkinThickness,data=dataku,
main="Matriks Korelasi",smooth = FALSE)pairs(~Glucose+Insulin+Pregnancies+BloodPressure+SkinThickness,data=dataku,
main="Simple Scatterplot Matrix", col="purple")
library(psych)##
## Attaching package: 'psych'
## The following object is masked from 'package:car':
##
## logit
## The following object is masked from 'package:plotrix':
##
## rescale
pairs.panels(dataku[1:5], method = "pearson",
hist.col = "grey", density = TRUE,ellipses = TRUE,lm = FALSE) #Fungsi pairs.panels( ) yang dihasilkan akan meliputi scatter plot, histogram dan density plot variabel kontinyu, serta nilai koefisien Korelasi Pearson. Sebelumnya diperlukan install package pysch terlebih dahuluboxplot(dataku$Glucose) #tunggalboxplot(Glucose ~ keterangan, data = dataku) #grupboxplot(Glucose ~ keterangan, data = dataku,horizontal = TRUE) # Horizontal #Boxplot dapat dibuat berupa boxplot tunggal maupun grup (lebih dari satu) dan bisa berbentuk horizontal maupun vertikal.stripchart(Insulin ~ keterangan, data = dataku, pch=1)stripchart(Insulin ~ keterangan, data = dataku,
method = "jitter",
pch = c(21, 18), # bentuk titik berdasarkan grup
col = c("brown", "yellow")) #warna titikqqnorm(Glucose, pch = 1)
qqline(Glucose, col="red", lwd = 2) # menambahkan garis library(car)
qqPlot(Glucose)## [1] 76 183
head(VADeaths)## Rural Male Rural Female Urban Male Urban Female
## 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
str(VADeaths)## num [1:5, 1:4] 11.7 18.1 26.9 41 66 8.7 11.7 20.3 30.9 54.3 ...
## - attr(*, "dimnames")=List of 2
## ..$ : chr [1:5] "50-54" "55-59" "60-64" "65-69" ...
## ..$ : chr [1:4] "Rural Male" "Rural Female" "Urban Male" "Urban Female"
rownames(VADeaths)## [1] "50-54" "55-59" "60-64" "65-69" "70-74"
#VADeaths adalah salah satu dataset yang sudah tersedia dalam program R. Cara melihatnya cukup ketikan data() maka akan muncul dataset yang tersedia di R.R_Female <- VADeaths[,"Rural Female"]
barplot(R_Female, col = c("orange", "blue", "purple","pink","grey"), xlab = "Age", ylab = "Rates")mycol=c("orange", "blue", "purple","pink","grey")
barplot(VADeaths,col = mycol, legend=rownames(VADeaths))barplot(VADeaths,col = mycol,beside = TRUE )
legend("topleft", rownames(VADeaths), cex = 0.5, fill = mycol)df<-mtcars
head(df)## mpg cyl disp hp drat wt qsec vs am gear carb
## Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
## Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
## Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
## Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
## Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
## Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
str(df)## 'data.frame': 32 obs. of 11 variables:
## $ mpg : num 21 21 22.8 21.4 18.7 18.1 14.3 24.4 22.8 19.2 ...
## $ cyl : num 6 6 4 6 8 6 8 4 4 6 ...
## $ disp: num 160 160 108 258 360 ...
## $ hp : num 110 110 93 110 175 105 245 62 95 123 ...
## $ drat: num 3.9 3.9 3.85 3.08 3.15 2.76 3.21 3.69 3.92 3.92 ...
## $ wt : num 2.62 2.88 2.32 3.21 3.44 ...
## $ qsec: num 16.5 17 18.6 19.4 17 ...
## $ vs : num 0 0 1 1 0 1 0 1 1 1 ...
## $ am : num 1 1 1 0 0 0 0 0 0 0 ...
## $ gear: num 4 4 4 3 3 3 3 4 4 4 ...
## $ carb: num 4 4 1 1 2 1 4 2 2 4 ...
attach(df)hist(df$mpg, xlab = "mpg",main = "Histogram mpg",col="brown")x <- mtcars$mpg
h<-hist(x, breaks=10, col="orange", xlab="Miles Per Gallon",
main="Histogram dengan Kurva Normal")
xfit<-seq(min(x),max(x),length=40) # parameter sumbu x
yfit<-dnorm(xfit,mean=mean(x),sd=sd(x)) # parameter sumbu y
yfit <- yfit*diff(h$mids[1:2])*length(x)
lines(xfit, yfit, col="blue", lwd=2) # menambahkan garis kurva normd <- density(mtcars$mpg)
plot(d, main="Density Plot MPG")
polygon(d, col="purple", border="red")library(sm)## Package 'sm', version 2.2-5.6: type help(sm) for summary information
sm.density.compare(mpg, cyl, xlab="Miles Per Gallon")dotchart(mtcars$mpg, labels = row.names(mtcars),
cex = 0.6, xlab = "mpg")grps <- as.factor(mtcars$cyl) # mengubah cyl menjadi factor
my_cols <- c("blue", "black", "brown")
dotchart(mtcars$mpg, labels = row.names(mtcars),
groups = grps, gcolor = my_cols,
color = my_cols[grps],
cex = 0.6, pch = 19, xlab = "mpg")