Latihan ini bertujuan untuk memperkenalkan dasar-dasar visualisasi
data menggunakan ggplot2 melalui studi kasus
squirrel data. Mahasiswa diharapkan mampu:
ggplot2.x,
y, color, fill, dan
shape.library(tidyverse)
Gunakan file data squirrel dalam format .csv. Pastikan
file berada pada folder kerja yang sama dengan file R Markdown ini.
squirrels_url <- paste0("https://raw.githubusercontent.com/rfordatascience/tidytuesday/","master/data/2019/2019-10-29/nyc_squirrels.csv")
squirrel <- read.csv(squirrels_url)
glimpse(squirrel)
## Rows: 3,023
## Columns: 36
## $ long <dbl> -73.95613, -73.95704, -73.9…
## $ lat <dbl> 40.79408, 40.79485, 40.7667…
## $ unique_squirrel_id <chr> "37F-PM-1014-03", "37E-PM-1…
## $ hectare <chr> "37F", "37E", "02E", "05D",…
## $ shift <chr> "PM", "PM", "AM", "PM", "AM…
## $ date <int> 10142018, 10062018, 1010201…
## $ hectare_squirrel_number <int> 3, 3, 3, 5, 1, 2, 2, 3, 9, …
## $ age <chr> NA, "Adult", "Adult", "Juve…
## $ primary_fur_color <chr> NA, "Gray", "Cinnamon", "Gr…
## $ highlight_fur_color <chr> NA, "Cinnamon", NA, NA, NA,…
## $ combination_of_primary_and_highlight_color <chr> "+", "Gray+Cinnamon", "Cinn…
## $ color_notes <chr> NA, NA, NA, NA, NA, NA, NA,…
## $ location <chr> NA, "Ground Plane", "Above …
## $ above_ground_sighter_measurement <chr> NA, "FALSE", "4", "3", NA, …
## $ specific_location <chr> NA, NA, NA, NA, NA, NA, NA,…
## $ running <lgl> FALSE, TRUE, FALSE, FALSE, …
## $ chasing <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ climbing <lgl> FALSE, FALSE, TRUE, TRUE, F…
## $ eating <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ foraging <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ other_activities <chr> NA, NA, NA, NA, "unknown", …
## $ kuks <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ quaas <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ moans <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ tail_flags <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ tail_twitches <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ approaches <lgl> FALSE, FALSE, FALSE, FALSE,…
## $ indifferent <lgl> FALSE, FALSE, TRUE, FALSE, …
## $ runs_from <lgl> FALSE, TRUE, FALSE, TRUE, F…
## $ other_interactions <chr> NA, "me", NA, NA, NA, NA, N…
## $ lat_long <chr> "POINT (-73.9561344937861 4…
## $ zip_codes <int> NA, NA, NA, NA, NA, NA, NA,…
## $ community_districts <int> 19, 19, 19, 19, 19, 19, 19,…
## $ borough_boundaries <int> 4, 4, 4, 4, 4, 4, 4, 4, 4, …
## $ city_council_districts <int> 19, 19, 19, 19, 19, 19, 19,…
## $ police_precincts <int> 13, 13, 13, 13, 13, 13, 13,…
names(squirrel)
## [1] "long"
## [2] "lat"
## [3] "unique_squirrel_id"
## [4] "hectare"
## [5] "shift"
## [6] "date"
## [7] "hectare_squirrel_number"
## [8] "age"
## [9] "primary_fur_color"
## [10] "highlight_fur_color"
## [11] "combination_of_primary_and_highlight_color"
## [12] "color_notes"
## [13] "location"
## [14] "above_ground_sighter_measurement"
## [15] "specific_location"
## [16] "running"
## [17] "chasing"
## [18] "climbing"
## [19] "eating"
## [20] "foraging"
## [21] "other_activities"
## [22] "kuks"
## [23] "quaas"
## [24] "moans"
## [25] "tail_flags"
## [26] "tail_twitches"
## [27] "approaches"
## [28] "indifferent"
## [29] "runs_from"
## [30] "other_interactions"
## [31] "lat_long"
## [32] "zip_codes"
## [33] "community_districts"
## [34] "borough_boundaries"
## [35] "city_council_districts"
## [36] "police_precincts"
summary(squirrel)
## long lat unique_squirrel_id hectare
## Min. :-73.98 Min. :40.76 Length:3023 Length:3023
## 1st Qu.:-73.97 1st Qu.:40.77 Class :character Class :character
## Median :-73.97 Median :40.78 Mode :character Mode :character
## Mean :-73.97 Mean :40.78
## 3rd Qu.:-73.96 3rd Qu.:40.79
## Max. :-73.95 Max. :40.80
##
## shift date hectare_squirrel_number
## Length:3023 Min. :10062018 Min. : 1.000
## Class :character 1st Qu.:10082018 1st Qu.: 2.000
## Mode :character Median :10122018 Median : 3.000
## Mean :10119487 Mean : 4.124
## 3rd Qu.:10142018 3rd Qu.: 6.000
## Max. :10202018 Max. :23.000
##
## age primary_fur_color highlight_fur_color
## Length:3023 Length:3023 Length:3023
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## combination_of_primary_and_highlight_color color_notes
## Length:3023 Length:3023
## Class :character Class :character
## Mode :character Mode :character
##
##
##
##
## location above_ground_sighter_measurement specific_location
## Length:3023 Length:3023 Length:3023
## Class :character Class :character Class :character
## Mode :character Mode :character Mode :character
##
##
##
##
## running chasing climbing eating
## Mode :logical Mode :logical Mode :logical Mode :logical
## FALSE:2293 FALSE:2744 FALSE:2365 FALSE:2263
## TRUE :730 TRUE :279 TRUE :658 TRUE :760
##
##
##
##
## foraging other_activities kuks quaas
## Mode :logical Length:3023 Mode :logical Mode :logical
## FALSE:1588 Class :character FALSE:2921 FALSE:2973
## TRUE :1435 Mode :character TRUE :102 TRUE :50
##
##
##
##
## moans tail_flags tail_twitches approaches
## Mode :logical Mode :logical Mode :logical Mode :logical
## FALSE:3020 FALSE:2868 FALSE:2589 FALSE:2845
## TRUE :3 TRUE :155 TRUE :434 TRUE :178
##
##
##
##
## indifferent runs_from other_interactions lat_long
## Mode :logical Mode :logical Length:3023 Length:3023
## FALSE:1569 FALSE:2345 Class :character Class :character
## TRUE :1454 TRUE :678 Mode :character Mode :character
##
##
##
##
## zip_codes community_districts borough_boundaries city_council_districts
## Min. :10090 Min. :11 Min. :4 Min. :19.00
## 1st Qu.:12081 1st Qu.:19 1st Qu.:4 1st Qu.:19.00
## Median :12420 Median :19 Median :4 Median :19.00
## Mean :11828 Mean :19 Mean :4 Mean :19.07
## 3rd Qu.:12423 3rd Qu.:19 3rd Qu.:4 3rd Qu.:19.00
## Max. :12423 Max. :23 Max. :4 Max. :51.00
## NA's :3014
## police_precincts
## Min. :10
## 1st Qu.:13
## Median :13
## Mean :13
## 3rd Qu.:13
## Max. :18
##
Tuliskan penjelasan singkat mengenai struktur data.
Interpretasi:
Tuliskan jawaban Anda di sini.
Buat grafik batang untuk melihat warna bulu tupai yang paling banyak ditemukan.
ggplot(squirrel, aes(x = primary_fur_color)) +
geom_bar() +
labs(
title = "Distribution of Squirrel Fur Color",
x = "Fur Color",
y = "Count"
) +
theme_minimal()
Pertanyaan:
Warna bulu apa yang paling dominan?
Interpretasi:
Tuliskan jawaban Anda di sini. Warna bulu yang paling dominan secara signifikan adalah Gray (Abu-abu). Jumlah tupai berbulu abu-abu jauh melampaui warna lainnya seperti Cinnamon (cokelat kayu manis) dan Black (hitam). Terdapat juga beberapa data yang kosong (NA atau string kosong) yang menunjukkan warna bulu tidak teridentifikasi dengan jelas saat pengamatan.
Gunakan histogram untuk melihat penyebaran tupai berdasarkan koordinat X.
ggplot(squirrel, aes(x = long)) +
geom_histogram(bins = 30) +
labs(
title = "Distribution of Squirrel Location Based on X Coordinate",
x = "X Coordinate",
y = "Frequency"
) +
theme_minimal()
Pertanyaan:
Apakah lokasi pengamatan tupai terkonsentrasi pada area tertentu?
Interpretasi:
Tuliskan jawaban Anda di sini. Ya, sebaran koordinat X (long) menunjukkan bahwa pengamatan tupai terkonsentrasi di sepanjang area taman Central Park. Distribusinya cenderung merata di area memanjang taman, namun ada fluktuasi (puncak-puncak frekuensi tinggi pada histogram) yang menandakan area-area tertentu di dalam taman memiliki kepadatan populasi tupai yang lebih tinggi, kemungkinan karena ketersediaan pohon atau area makanan yang lebih banyak.
Buat scatter plot untuk menggambarkan lokasi tupai berdasarkan
koordinat x dan y.
ggplot(squirrel, aes(x = long, y = lat)) +
geom_point(alpha = 0.6) +
labs(
title = "Spatial Distribution of Squirrels",
x = "X Coordinate",
y = "Y Coordinate"
) +
theme_minimal()
Pertanyaan:
Bagaimana pola sebaran tupai secara spasial?
Interpretasi:
Tuliskan jawaban Anda di sini. Pola sebaran spasial tupai membentuk replika bentuk geografis dari Central Park itu sendiri, yaitu persegi panjang yang memanjang dari barat daya ke timur laut. Titik-titik scatter plot tersebar di seluruh area taman, menunjukkan bahwa tupai dapat ditemukan di hampir setiap sudut Central Park, meskipun ada beberapa kluster/kepadatan titik yang lebih rapat di zona-zona tertentu.
Tambahkan warna pada scatter plot berdasarkan
primary_fur_color.
ggplot(squirrel, aes(x = long, y = lat, color = primary_fur_color)) +
geom_point(alpha = 0.6) +
labs(
title = "Spatial Distribution of Squirrels by Fur Color",
x = "X Coordinate",
y = "Y Coordinate",
color = "Fur Color"
) +
theme_minimal()
Pertanyaan:
Apakah warna bulu tertentu cenderung muncul pada area tertentu?
Interpretasi:
Tuliskan jawaban Anda di sini. Secara umum, tidak ada lokalisasi atau pengelompokan ekstrem berdasarkan warna bulu. Tupai berbulu Gray (abu-abu) tersebar merata di seluruh area taman karena jumlahnya yang mendominasi. Tupai berbulu Cinnamon dan Black juga tersebar acak di antara populasi tupai abu-abu, tidak mengelompok di satu wilayah khusus taman saja.
Gunakan stacked proportional bar chart untuk melihat proporsi
perilaku chasing berdasarkan warna bulu.
ggplot(squirrel, aes(x = primary_fur_color, fill = chasing)) +
geom_bar(position = "fill") +
labs(
title = "Chasing Behavior by Fur Color",
x = "Fur Color",
y = "Proportion",
fill = "Chasing"
) +
theme_minimal()
Pertanyaan:
Apakah terdapat perbedaan proporsi perilaku chasing antar warna bulu?
Interpretasi:
Tuliskan jawaban Anda di sini. Berdasarkan stacked proportional bar chart, proporsi perilaku chasing (kejar-kejaran) relatif serupa atau konstan di antara semua kelompok warna bulu (Gray, Cinnamon, dan Black). Warna bulu tampaknya tidak memengaruhi atau memiliki korelasi dengan kecenderungan tupai untuk melakukan perilaku chasing.
Gunakan grafik batang proporsional untuk melihat perilaku makan berdasarkan kelompok umur.
ggplot(squirrel, aes(x = age, fill = eating)) +
geom_bar(position = "fill") +
labs(
title = "Eating Behavior by Age Group",
x = "Age Group",
y = "Proportion",
fill = "Eating"
) +
theme_minimal()
Pertanyaan:
Apakah perilaku makan berbeda antara adult dan juvenile squirrels?
Interpretasi:
Tuliskan jawaban Anda di sini. Proporsi perilaku eating (makan) antara tupai dewasa (Adult) dan tupai muda (Juvenile) menunjukkan pola yang hampir mirip, namun biasanya data menunjukkan tupai dewasa memiliki proporsi makan yang sedikit lebih tinggi atau stabil dibandingkan juvenile. Namun, secara visual perbedaannya tidak terlalu signifikan, menandakan kedua kelompok umur menghabiskan porsi waktu yang cukup mirip untuk mencari makan.
Gunakan facet_wrap() untuk membandingkan sebaran lokasi
tupai berdasarkan umur.
ggplot(squirrel, aes(x = long, y = lat)) +
geom_point(alpha = 0.5) +
facet_wrap(~ age) +
labs(
title = "Spatial Distribution of Squirrels by Age Group",
x = "X Coordinate",
y = "Y Coordinate"
) +
theme_minimal()
Pertanyaan:
Apakah adult dan juvenile squirrels memiliki pola lokasi yang berbeda?
Interpretasi:
Tuliskan jawaban Anda di sini. Tupai dewasa (Adult) memiliki sebaran titik yang jauh lebih padat dan memenuhi seluruh area Central Park. Sementara itu, tupai muda (Juvenile) memiliki jumlah titik pengamatan yang lebih sedikit dan tampak agak renggang. Pola lokasinya tidak berbeda secara struktural (keduanya ada di seluruh taman), tetapi area jelajah tupai dewasa terlihat jauh lebih luas dan merata karena ukuran sampel mereka yang jauh lebih besar.
Gunakan color untuk warna bulu dan shape
untuk kelompok umur.
ggplot(squirrel, aes(
x = long,
y = lat,
color = primary_fur_color,
shape = age
)) +
geom_point(size = 2, alpha = 0.7) +
labs(
title = "Squirrel Location by Fur Color and Age",
x = "X Coordinate",
y = "Y Coordinate",
color = "Fur Color",
shape = "Age"
) +
theme_minimal()
## Warning: Removed 121 rows containing missing values or values outside the scale range
## (`geom_point()`).
Pertanyaan:
Informasi tambahan apa yang diperoleh ketika warna dan bentuk digunakan secara bersamaan?
Interpretasi:
Tuliskan jawaban Anda di sini. Dengan menggabungkan color (warna bulu) dan shape (kelompok umur), kita mendapatkan visualisasi multidimensi yang kaya. Kita bisa langsung melihat interaksi spasial antara dua karakteristik sekaligus: misalnya, kita dapat mengidentifikasi apakah di suatu sudut taman tertentu sedang berkumpul kawanan tupai muda berbulu hitam (Black-Juvenile) atau didominasi oleh tupai dewasa berbulu abu-abu (Gray-Adult). Ini memudahkan deteksi pola demografi lokal secara instan.
Buat satu visualisasi tambahan berdasarkan pertanyaan analitis yang Anda susun sendiri.
Contoh pertanyaan:
# Tulis kode visualisasi Anda di sini
ggplot(squirrel, aes(x = age, fill = running)) +
geom_bar(position = "fill") +
labs(
title = "Running Behavior by Age Group",
x = "Age Group",
y = "Proportion",
fill = "Running"
) +
theme_minimal()
Pertanyaan Analitis:
Tuliskan pertanyaan Anda di sini. Apakah perilaku running (berlari) lebih sering dilakukan oleh tupai muda (juvenile) dibandingkan tupai dewasa (adult)?
Interpretasi:
Tuliskan jawaban Anda di sini. Berdasarkan grafik proporsi di atas, tupai muda (juvenile) umumnya menunjukkan proporsi perilaku running = TRUE yang sedikit lebih tinggi daripada tupai dewasa (adult). Hal ini masuk akal secara biologis karena tupai yang lebih muda cenderung lebih aktif, energetik, atau lebih waspada/takut terhadap ancaman di sekitarnya sehingga lebih sering berlari.
Tuliskan 3–5 insight utama yang diperoleh dari visualisasi squirrel data.
Kesimpulan:
Dominasi Warna Bulu: Populasi tupai di Central Park secara mutlak didominasi oleh tupai berbulu abu-abu (Gray), disusul oleh warna Cinnamon dan Black.
Karakteristik Geografis: Distribusi spasial tupai merepresentasikan bentuk Central Park secara presisi, menunjukkan bahwa tupai memanfaatkan seluruh area taman tanpa ada batasan wilayah geografis yang ekstrem.
Perilaku Tidak Bergantung pada Warna: Perilaku sosial dan aktivitas harian seperti chasing (kejar-kejaran) tidak dipengaruhi oleh faktor fisik seperti warna bulu tupai.
Demografi Populasi: Pengamatan terhadap tupai dewasa (Adult) jauh lebih banyak ditemukan di lapangan dibandingkan dengan tupai muda (Juvenile), yang mengindikasikan struktur populasi yang matang atau perilaku tupai muda yang lebih tersembunyi.
Kombinasi Aesthetic ggplot2: Penggunaan fitur mapping seperti warna, bentuk, dan faceting sangat efektif untuk membedakan serta mencari pola hubungan antara karakteristik fisik (umur & warna) terhadap posisi spasial tupai di taman.
#RPUBS EFAN : https://rpubs.com/efanpakef/W13VDE
Kumpulkan file dalam format HTML. Pastikan dokumen memuat: