Data yang digunakan dalam penelitian ini adalah data yang bersumber dari database R yaitu data “Diamonds”. Data yang dipanggil kemudian dilihat strukturnya yang kemudian disajikan beberapa variabelnya untuk menyajikan visualisasi data yang diharapkan bisa dipahami pembaca.
Dari penelitian ini, digunakanlah syntax-syntax sebagai berikut.
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
data(diamonds)
head(diamonds)
## # A tibble: 6 × 10
## carat cut color clarity depth table price x y z
## <dbl> <ord> <ord> <ord> <dbl> <dbl> <int> <dbl> <dbl> <dbl>
## 1 0.23 Ideal E SI2 61.5 55 326 3.95 3.98 2.43
## 2 0.21 Premium E SI1 59.8 61 326 3.89 3.84 2.31
## 3 0.23 Good E VS1 56.9 65 327 4.05 4.07 2.31
## 4 0.29 Premium I VS2 62.4 58 334 4.2 4.23 2.63
## 5 0.31 Good J SI2 63.3 58 335 4.34 4.35 2.75
## 6 0.24 Very Good J VVS2 62.8 57 336 3.94 3.96 2.48
Dimana dari data yang ditampilkan terdapat 53940 observasi dari 10 variabel.
Struktur data dapat ditampilkan dengan syntax berikut.
str(diamonds)
## tibble [53,940 × 10] (S3: tbl_df/tbl/data.frame)
## $ carat : num [1:53940] 0.23 0.21 0.23 0.29 0.31 0.24 0.24 0.26 0.22 0.23 ...
## $ cut : Ord.factor w/ 5 levels "Fair"<"Good"<..: 5 4 2 4 2 3 3 3 1 3 ...
## $ color : Ord.factor w/ 7 levels "D"<"E"<"F"<"G"<..: 2 2 2 6 7 7 6 5 2 5 ...
## $ clarity: Ord.factor w/ 8 levels "I1"<"SI2"<"SI1"<..: 2 3 5 4 2 6 7 3 4 5 ...
## $ depth : num [1:53940] 61.5 59.8 56.9 62.4 63.3 62.8 62.3 61.9 65.1 59.4 ...
## $ table : num [1:53940] 55 61 65 58 58 57 57 55 61 61 ...
## $ price : int [1:53940] 326 326 327 334 335 336 336 337 337 338 ...
## $ x : num [1:53940] 3.95 3.89 4.05 4.2 4.34 3.94 3.95 4.07 3.87 4 ...
## $ y : num [1:53940] 3.98 3.84 4.07 4.23 4.35 3.96 3.98 4.11 3.78 4.05 ...
## $ z : num [1:53940] 2.43 2.31 2.31 2.63 2.75 2.48 2.47 2.53 2.49 2.39 ...
sapply(diamonds, class)
## $carat
## [1] "numeric"
##
## $cut
## [1] "ordered" "factor"
##
## $color
## [1] "ordered" "factor"
##
## $clarity
## [1] "ordered" "factor"
##
## $depth
## [1] "numeric"
##
## $table
## [1] "numeric"
##
## $price
## [1] "integer"
##
## $x
## [1] "numeric"
##
## $y
## [1] "numeric"
##
## $z
## [1] "numeric"
Dari output yang diperoleh, dikatahui ada 10 variabel dengan rincian variabel : a. “Carat” yang merupakan data numerik b. “Cut” yang merupakan data ordinal faktor c. “Color” yang merupakan data ordinal faktor d. “Clarity” yang merupakan data ordinal faktor e. “Depht” yang merupakan data numerik f. “Table” yang merupakan data numerik g. “Price” yang merupakan data interger h. “x” yang merupakan data numerik i. “y” yang merupakan data numerik j. “z” yang merupakan data numerik
Dari data, dibuatlah beberapa visualisasi data sebagai berikut.
Histogram dapat dibuat dengan variabel “price” yang menunjukkan harga berlian sehingga akan dilihat bagaimana pesebaran harga berlian. Syntax yaitu sebagai berikut.
hist(diamonds$price,
probability=TRUE,
main="Distribusi Harga Berlian",
xlab="Price",
col="pink",
breaks=30)
Dari output dapat diketahui bahwa harga berlian cukup condong berkisar rendah dibawah 5000.
Density plot digunakan untuk melihat pola distribusi data secara lebih halus dibanding histogram. Di sini digunakan variabel price.
ggplot(diamonds, aes(x = price, fill = cut)) +
geom_density(alpha = 0.4) +
labs(title = "Harga Berlian Berdasarkan Cut",
x = "Price",
y = "Density",
fill = "Cut") +
theme_minimal()
Dari density plot terlihat bahwa distribusi harga berlian condong ke kanan (right skewed). Kepadatan tertinggi berada pada kisaran harga rendah, kemudian semakin menurun ketika harga semakin tinggi. Hal ini menunjukkan bahwa sebagian besar berlian memiliki harga relatif rendah, sedangkan berlian dengan harga sangat tinggi jumlahnya sedikit.
Boxplot digunakan untuk melihat median, kuartil, serta adanya pencilan (outlier). Di sini dibuat boxplot price berdasarkan kategori cut.
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_boxplot() +
labs(title = "Harga Berlian Berdasarkan Cut",
x = "Cut",
y = "Price") +
theme_minimal() +
theme(legend.position = "none")
Dari boxplot terlihat bahwa median harga berbeda pada setiap kategori
cut. Selain itu, terdapat banyak titik pencilan (outlier) terutama pada
harga tinggi. Hal ini menunjukkan bahwa terdapat beberapa berlian dengan
harga jauh lebih mahal dibandingkan mayoritas data.Boxplot juga
memperlihatkan bahwa distribusi harga tidak simetris karena whisker
bagian atas lebih panjang dibanding bagian bawah, yang mengindikasikan
kemiringan ke kanan.
Violin plot merupakan kombinasi antara boxplot dan density plot. Grafik ini menunjukkan bentuk distribusi sekaligus median dan penyebaran data.
ggplot(diamonds, aes(x = cut, y = price, fill = cut)) +
geom_violin(trim = FALSE, alpha = 0.6) +
labs(title = "Harga Berlian Berdasarkan Cut",
x = "Cut",
y = "Price") +
theme_minimal() +
theme(legend.position = "none")
Pada violin plot terlihat bentuk distribusi harga pada setiap kategori
cut. Bagian yang lebih lebar menunjukkan kepadatan data yang lebih
tinggi. Terlihat bahwa pada semua kategori cut, kepadatan terbesar
berada pada harga rendah. Semakin ke atas, bentuknya semakin menyempit,
yang menunjukkan jumlah berlian dengan harga tinggi semakin sedikit.
Violin plot memberikan gambaran distribusi yang lebih detail dibanding
boxplot, karena kita dapat melihat bentuk sebaran data, bukan hanya
ringkasan statistiknya.