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") #tunggal
plot(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 Insulin
library(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 dahulu
boxplot(dataku$Glucose) #tunggal
boxplot(Glucose ~ keterangan, data = dataku) #grup
boxplot(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 titik
qqnorm(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 norm
d <- 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")