Package {ggplot2} juga menyediakan beberapa dataframe yang dapat digunakan untuk latihan. Salah satu dataframe yang disediakan adalah CO2, bingkai data memiliki 84 baris dan 5 kolom data dari percobaan toleransi dingin spesies rumput Echinochloa crus-galli..
library(ggplot2)
data(CO2)
head(CO2)
## Plant Type Treatment conc uptake
## 1 Qn1 Quebec nonchilled 95 16.0
## 2 Qn1 Quebec nonchilled 175 30.4
## 3 Qn1 Quebec nonchilled 250 34.8
## 4 Qn1 Quebec nonchilled 350 37.2
## 5 Qn1 Quebec nonchilled 500 35.3
## 6 Qn1 Quebec nonchilled 675 39.2
dim(CO2)
## [1] 84 5
CO2
## Plant Type Treatment conc uptake
## 1 Qn1 Quebec nonchilled 95 16.0
## 2 Qn1 Quebec nonchilled 175 30.4
## 3 Qn1 Quebec nonchilled 250 34.8
## 4 Qn1 Quebec nonchilled 350 37.2
## 5 Qn1 Quebec nonchilled 500 35.3
## 6 Qn1 Quebec nonchilled 675 39.2
## 7 Qn1 Quebec nonchilled 1000 39.7
## 8 Qn2 Quebec nonchilled 95 13.6
## 9 Qn2 Quebec nonchilled 175 27.3
## 10 Qn2 Quebec nonchilled 250 37.1
## 11 Qn2 Quebec nonchilled 350 41.8
## 12 Qn2 Quebec nonchilled 500 40.6
## 13 Qn2 Quebec nonchilled 675 41.4
## 14 Qn2 Quebec nonchilled 1000 44.3
## 15 Qn3 Quebec nonchilled 95 16.2
## 16 Qn3 Quebec nonchilled 175 32.4
## 17 Qn3 Quebec nonchilled 250 40.3
## 18 Qn3 Quebec nonchilled 350 42.1
## 19 Qn3 Quebec nonchilled 500 42.9
## 20 Qn3 Quebec nonchilled 675 43.9
## 21 Qn3 Quebec nonchilled 1000 45.5
## 22 Qc1 Quebec chilled 95 14.2
## 23 Qc1 Quebec chilled 175 24.1
## 24 Qc1 Quebec chilled 250 30.3
## 25 Qc1 Quebec chilled 350 34.6
## 26 Qc1 Quebec chilled 500 32.5
## 27 Qc1 Quebec chilled 675 35.4
## 28 Qc1 Quebec chilled 1000 38.7
## 29 Qc2 Quebec chilled 95 9.3
## 30 Qc2 Quebec chilled 175 27.3
## 31 Qc2 Quebec chilled 250 35.0
## 32 Qc2 Quebec chilled 350 38.8
## 33 Qc2 Quebec chilled 500 38.6
## 34 Qc2 Quebec chilled 675 37.5
## 35 Qc2 Quebec chilled 1000 42.4
## 36 Qc3 Quebec chilled 95 15.1
## 37 Qc3 Quebec chilled 175 21.0
## 38 Qc3 Quebec chilled 250 38.1
## 39 Qc3 Quebec chilled 350 34.0
## 40 Qc3 Quebec chilled 500 38.9
## 41 Qc3 Quebec chilled 675 39.6
## 42 Qc3 Quebec chilled 1000 41.4
## 43 Mn1 Mississippi nonchilled 95 10.6
## 44 Mn1 Mississippi nonchilled 175 19.2
## 45 Mn1 Mississippi nonchilled 250 26.2
## 46 Mn1 Mississippi nonchilled 350 30.0
## 47 Mn1 Mississippi nonchilled 500 30.9
## 48 Mn1 Mississippi nonchilled 675 32.4
## 49 Mn1 Mississippi nonchilled 1000 35.5
## 50 Mn2 Mississippi nonchilled 95 12.0
## 51 Mn2 Mississippi nonchilled 175 22.0
## 52 Mn2 Mississippi nonchilled 250 30.6
## 53 Mn2 Mississippi nonchilled 350 31.8
## 54 Mn2 Mississippi nonchilled 500 32.4
## 55 Mn2 Mississippi nonchilled 675 31.1
## 56 Mn2 Mississippi nonchilled 1000 31.5
## 57 Mn3 Mississippi nonchilled 95 11.3
## 58 Mn3 Mississippi nonchilled 175 19.4
## 59 Mn3 Mississippi nonchilled 250 25.8
## 60 Mn3 Mississippi nonchilled 350 27.9
## 61 Mn3 Mississippi nonchilled 500 28.5
## 62 Mn3 Mississippi nonchilled 675 28.1
## 63 Mn3 Mississippi nonchilled 1000 27.8
## 64 Mc1 Mississippi chilled 95 10.5
## 65 Mc1 Mississippi chilled 175 14.9
## 66 Mc1 Mississippi chilled 250 18.1
## 67 Mc1 Mississippi chilled 350 18.9
## 68 Mc1 Mississippi chilled 500 19.5
## 69 Mc1 Mississippi chilled 675 22.2
## 70 Mc1 Mississippi chilled 1000 21.9
## 71 Mc2 Mississippi chilled 95 7.7
## 72 Mc2 Mississippi chilled 175 11.4
## 73 Mc2 Mississippi chilled 250 12.3
## 74 Mc2 Mississippi chilled 350 13.0
## 75 Mc2 Mississippi chilled 500 12.5
## 76 Mc2 Mississippi chilled 675 13.7
## 77 Mc2 Mississippi chilled 1000 14.4
## 78 Mc3 Mississippi chilled 95 10.6
## 79 Mc3 Mississippi chilled 175 18.0
## 80 Mc3 Mississippi chilled 250 17.9
## 81 Mc3 Mississippi chilled 350 17.9
## 82 Mc3 Mississippi chilled 500 17.9
## 83 Mc3 Mississippi chilled 675 18.9
## 84 Mc3 Mississippi chilled 1000 19.9
Untuk membuat histogram pada package {ggplot2} menggunakan perintah
geom_histogram(). Variable yang digunakan yaitu uptake pada
data CO2
ggplot(data = CO2, mapping = aes(x = uptake)) +
geom_histogram()
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.
Secara defaut, geom_histogram() menggunakan 50 bins
(batang). Selanjutnya mengganti nilai bins tersebut dengan menambahkan
argumen bins = 50. Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake)) +
geom_histogram(bins = 50)
Kita dapat memberikan pemisah dengan warna putih Anda dapat tambahkan
argumen color = "green". Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake)) +
geom_histogram(bins = 50, color = "green")
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 = CO2, mapping = aes(x = uptake)) +
geom_histogram(bins = 100, color = "green", fill = "black") +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "penyerapan",
y = "Frekuensi")
Untuk membuat density plot menggunakan ggplot2 kita cukup menggunakan function geom_density()
ggplot(data = CO2, mapping = aes(x = uptake)) +
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 = CO2, mapping = aes(x = uptake)) +
geom_density(fill = "yellow", alpha = 0.7) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "kecepatan")
ggplot(data = CO2, mapping = aes(x = uptake, fill = Plant, color = Plant)) +
geom_density(alpha = 0.22) +
scale_x_continuous(labels = comma) +
scale_y_continuous(labels = comma) +
labs(x = "penyerapan")
library(ggridges)
ggplot(data = CO2, mapping = aes(x = uptake, y= Plant,fill = Plant)) +
geom_density_ridges() +
labs(x = "penyerapan", y = "Tanaman")
## Picking joint bandwidth of 2.85
Untuk membuat boxplot di ggplot2 kita dapat gunakan
function geom_boxplot()
ggplot(data = CO2, mapping = aes(x = uptake)) +
geom_boxplot()
Membuat boxplot secara vertikal menggunakan perintah
coord_flip(). Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake)) +
geom_boxplot()+
coord_flip()
kita dapat membuat boxplot dari data numerik dan membandingkan sebarannya berdasarkan kategori. Misalnya kita ingin membandingkan sebaran data CO2 berdasarkan tingkat warna (color). Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake, y = Plant)) +
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 penyerapan (uptake) berdasarkan warnanya
(color) menggunakan boxplot dan menyesuaikan
warnanya berdasarkan kategori dari color. Hasilnya sebagai
berikut.
ggplot(data = CO2, mapping = aes(x = uptake, y = Plant, fill = Plant)) +
geom_boxplot()
Untuk menghilangkan legend dari color kita dapat tambahkan theme(legend.position = “none”).Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake, y = Plant, fill = Plant)) +
geom_boxplot() +
theme(legend.position = "none")
Plot ini dibentuk dengan menggabungkan antara Density Plot dengan boxplot. Hasilnya sebagai berikut.
ggplot(data = CO2, mapping = aes(x = uptake ,y= Plant)) +
geom_violin(fill="green",alpha=0.3) +
geom_boxplot(fill="black",width=0.2)+
scale_x_continuous(labels = comma)
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 penyerapan (uptake). apakah menyebar normal atau tidak.
ggplot(data = CO2, aes(sample = uptake)) +
stat_qq(col="blue", cex=2) +
stat_qq_line(col="red", lwd=1)
Untuk membuat scatter plot menggunakan ggplot2 kita
dapat menggunakan geom_point(). Misalnya kita ingin melihat
pola sebaran antara uptake dan Plant
ggplot(data = CO2, mapping = aes(x = uptake, y = Plant)) +
geom_point()
Kita juga dapat memberikan warna untuk setiap titik. Misalnya warna masing-masing titik menyesuaikan dengan kategori pada variabel Uptake
ggplot(data = CO2, mapping = aes(x = uptake, y = Plant, color = Plant)) +
geom_point()
Plot ini digunakan untuk melihat trend data berdasarkan perubahan waktu. Artinya pada Line Chart cocok untuk data-data deret waktu.
meng input data dari excel ke r studio
library(readxl)
amazon<- read_xlsx("C:/visualisasi data/data amazon.xlsx")
amazon$Date<- as.Date(amazon$Date)
head(amazon)
## # A tibble: 6 × 8
## Date Open High Low Close Volume Dividends `Stock Splits`
## <date> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1997-05-15 0.122 0.125 0.0964 0.0979 1443120000 0 0
## 2 1997-05-16 0.0984 0.0990 0.0854 0.0865 294000000 0 0
## 3 1997-05-19 0.0880 0.0885 0.0812 0.0854 122136000 0 0
## 4 1997-05-20 0.0865 0.0875 0.0818 0.0818 109344000 0 0
## 5 1997-05-21 0.0818 0.0823 0.0688 0.0714 377064000 0 0
## 6 1997-05-22 0.0719 0.0724 0.0656 0.0698 235536000 0 0
str(amazon)
## tibble [6,987 × 8] (S3: tbl_df/tbl/data.frame)
## $ Date : Date[1:6987], format: "1997-05-15" "1997-05-16" ...
## $ Open : num [1:6987] 0.1219 0.0984 0.088 0.0865 0.0818 ...
## $ High : num [1:6987] 0.125 0.099 0.0885 0.0875 0.0823 ...
## $ Low : num [1:6987] 0.0964 0.0854 0.0812 0.0818 0.0688 ...
## $ Close : num [1:6987] 0.0979 0.0865 0.0854 0.0818 0.0714 ...
## $ Volume : num [1:6987] 1.44e+09 2.94e+08 1.22e+08 1.09e+08 3.77e+08 ...
## $ Dividends : num [1:6987] 0 0 0 0 0 0 0 0 0 0 ...
## $ Stock Splits: num [1:6987] 0 0 0 0 0 0 0 0 0 0 ...
ggplot(data = amazon, mapping = aes(x=Date,y=Volume)) +
geom_line() +
labs(x="Tanggal", x="volume")
Untuk menambah estetika dapat dilakukan dengan mengarsir daerah di bawah plot deret waktu. Plot seperti ini disebut Area Plot. Hasilnya sebagai berikut.
ggplot(data = amazon, aes(x=Date,y= Volume)) +
geom_line(lwd=1.2, col="aquamarine") +
geom_area(fill="purple4", alpha=0.3)
labs(x="tanggal", x="volume")
## $x
## [1] "tanggal"
##
## attr(,"class")
## [1] "labels"
Pada plot ini dapat digunakan untuk membandingkan trend data deret waktu pada Harga tertinggidan terrendah yang tercatat untuk saham tersebut selama sesi perdagangan.
ggplot(data = amazon, aes(x=Date)) +
geom_line(aes(y=High), lwd=1, col="blue") +
geom_line(aes(y=Low), lwd=1, col="red") +
labs(x="tahun", y ="frekuensi")
Untuk menambahkan nama kelompok digunakan perintah berikut.
ggplot(data = amazon, aes(x=Date)) +
geom_line(aes(y=High), lwd=1.2, col="blue") +
geom_line(aes(y=Low), lwd=1.2, col="red") +
xlim(min(amazon$Date),max(amazon$Date)+100) +
geom_text(x=max(amazon$Date),y=tail(amazon$High,1)+30,
label="High", size = 4,
color="blue", hjust=8) +
geom_text(x=max(amazon$Date),y=tail(amazon$Low,1)+30,
label="Low", size = 4,
color="red", hjust=7) +
labs(x="tahun", x="Frekuensi")