Package {ggplot2} juga menyediakan beberapa dataframe yang dapat digunakan untuk latihan. Salah satu dataframe yang disediakan adalah diamonds, yaitu data tentang harga dan karakter dari 53.940 berlian.
library(ggplot2)
data("PlantGrowth")
head(PlantGrowth)
dim(PlantGrowth)
## [1] 30 2
Untuk membuat histogram pada package {ggplot2} menggunakan perintah
geom_histogram(). Variable yang digunakan yaitu
price pada data diamonds.
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Secara defaut,
geom_histogram() menggunakan 30 bins
(batang). Selanjutnya mengganti nilai bins tersebut dengan menambahkan
argumen bins = 50. Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_histogram(bins = 80)
Kita dapat memberikan pemisah dengan warna putih Anda dapat tambahkan
argumen color = "red". Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_histogram(bins = 30, color = "red")
Kita dapat mengubah warna batang dengan menggunakan argumen
fill, mengubah format penulisan nilai pada sumbu x dan y
menggunakan function scale_x_continuous() untuk sumbu x dan
scale_y_continuous() untuk sumbu y dan mengubah nama label
pada sumbu x dan y dengan fungsi labs. Hasilnya sebagai
berikut.
library(scales)
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_histogram(bins = 30, color = "white", fill = "red") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Price",
y = "Frekuensi")
## Desnity Plot Untuk membuat density plot menggunakan ggplot2 kita
cukup menggunakan function geom_density()
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_density()
Untuk mengatur warna, transaparansi, format penulisan nilai pada sumbu x
dan y, dan labeling sumbu x sama seperti pembuatan Histogram. Hasilnya
sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_density(fill = "blue", alpha = 0.7) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "Price")
Kita dapat membandingkan sebaran menggunakan density
plot berdasarkan kategori. Misal akan dilihat sebaran harga
berlian (weight) berdasarkan kategori kualitas potongan berlian
(cut). Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight, fill = group, color = group)) +
geom_density(alpha = 0.7) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "weight")
Untuk mengurangi kesulitan dalam mengamati visual tersebut maka perlu dipisah per kategori dengan menggunakan visualisasi ridgeline plot atau disebut juga joyplot.
library(ggridges)
ggplot(data = PlantGrowth, mapping = aes(x = weight, y= group,fill = group)) +
geom_density_ridges() +
labs(x = "berat tumbuhan", y = "jenis tumbuhan")
## Picking joint bandwidth of 0.265
## Boxplot Untuk membuat boxplot di ggplot2 kita dapat
gunakan function
geom_boxplot()
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_boxplot()
Membuat boxplot secara vertikal menggunakan perintah
coord_flip(). Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight)) +
geom_boxplot()+
coord_flip()
kita dapat membuat boxplot dari data numerik dan membandingkan sebarannya berdasarkan kategori. Misalnya kita ingin membandingkan berat tumbuhan (weight) berdasarkan tingkat warna (color). Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight, y = group)) +
geom_boxplot()
Selanjutnya memberi warna berbeda untuk setiap box berdasarkan
kategorinya. Kita dapat menambahkan argumen fill dengan
nilai berupa nama variabel dari kategori yang ingin kita gunkan untuk
perbandingan boxplot. Misalnya kita ingin membandingkan sebaran dari
variabel harga berlian (price) berdasarkan warnanya
(color) menggunakan boxplot dan menyesuaikan
warnanya berdasarkan kategori dari color. Hasilnya sebagai
berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight, y = group, fill = group)) +
geom_boxplot()
Untuk menghilangkan legend dari color kita dapat tambahkan theme(legend.position = “none”).Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight, y = group, fill = group)) +
geom_boxplot() +
theme(legend.position = "none")
## Violin Plot
Plot ini dibentuk dengan menggabungkan antara Density Plot dengan boxplot. Hasilnya sebagai berikut.
ggplot(data = PlantGrowth, mapping = aes(x = weight,y="aaa")) +
geom_violin(fill="red",alpha=0.5) +
geom_boxplot(fill="blue",width=0.1)
## QQ-Plot Plot ini berguna untuk memeriksa apakah sebaran data (sebaran
empirik) memiliki bentuk yang sama dengan sebaran tertentu yang
dispesifikan (sebaran hipotetik). Misalnya kita ingin melihat pola
sebaran harga berlian (price). apakah menyebar normal atau
tidak.
ggplot(data = PlantGrowth, aes(sample = weight)) +
stat_qq(col="pink", cex=0.9) +
stat_qq_line(col="purple", lwd=1)
DATA LINECHART
library(readxl)
CLIM_TEST <- read_xlsx("C:/Users/rafir/OneDrive/Rafi Ramadhan Asshiddieqie/biano.xlsx")
CLIM_TEST$date <- as.Date.character(CLIM_TEST$date,"%m/%d/%Y")
head(CLIM_TEST)
str(CLIM_TEST)
## tibble [9 × 5] (S3: tbl_df/tbl/data.frame)
## $ date : Date[1:9], format: NA NA ...
## $ meantemp : num [1:9] 15.9 18.5 17.1 18.7 18.4 ...
## $ humidity : num [1:9] 85.9 77.2 81.9 70 74.9 ...
## $ wind_speed : num [1:9] 2.74 2.89 4.02 4.54 3.3 ...
## $ meanpressure: num [1:9] 59 1018 1018 1016 1014 ...
library(ggplot2)
ggplot(data = CLIM_TEST, aes(x=meanpressure,y= wind_speed )) +
geom_line() +
labs(x="freq meanpressure", x="kecepatan angin")
Untuk menambah estetika dapat dilakukan dengan mengarsir daerah di bawah plot deret waktu. Plot seperti ini disebut Area Plot. Hasilnya sebagai berikut.
ggplot(data = CLIM_TEST, aes(x=meanpressure,y= wind_speed)) +
geom_line(lwd=1, col="darkgreen") +
geom_area(fill="green", alpha=0.3)
labs(x="freq meanpressure", x="kecepatan angin")
## $x
## [1] "freq meanpressure"
##
## attr(,"class")
## [1] "labels"
Pada plot ini dapat digunakan untuk membandingkan trend data deret waktu pada beberapa wilayah/kelompok.
ggplot(data = CLIM_TEST, aes(x=meanpressure)) +
geom_line(aes(y=wind_speed), lwd=1.2, col="blue") +
geom_line(aes(y=wind_speed), lwd=1.2, col="red") +
labs(x="tanggal", x="banyaknya kasus harian")
Untuk menambahkan nama kelompok digunakan perintah berikut.
ggplot(data = CLIM_TEST, aes(x=meanpressure)) +
geom_line(aes(y=wind_speed), lwd=1.2, col="blue") +
geom_line(aes(y=wind_speed), lwd=0.1, col="red") +
xlim(min(CLIM_TEST$meanpressure),max(CLIM_TEST$meanpressure)+100) +
geom_text(x=max(CLIM_TEST$meanpressure),y=tail(CLIM_TEST$wind_speed,1)+30,
label="kecepatan angin", size = 5,
color="blue", hjust= -0.004) +
geom_text(x=max(CLIM_TEST$meanpressure),y=tail(CLIM_TEST$humidity,1)+30,
label="HUMIDITY", size = 5,
color="red", hjust=-0.008) +
labs(x="TEKANAN RATARATA", x="KECEPATAN ANGIN")