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:
Dataset nyc_squirrels memiliki 3.023 baris observasi dan 36 kolom variabel. Variabel dalam dataset mencakup koordinat lokasi (long, lat), karakteristik fisik tupai (age, primary_fur_color), serta berbagai perilaku bertipe logical seperti running, chasing, eating, dan foraging. Terdapat beberapa nilai NA pada kolom age, primary_fur_color, dan zip_codes yang menunjukkan bahwa tidak semua tupai berhasil diidentifikasi secara lengkap saat pengamatan.
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:
berdasarkan histogram diatas warna bulu yang paling dominan adalah grey
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:
berdasarkan histogram diatas, distribusi lokasi tupai berdasarkan koordinat x terkonsentrasi pada beberapa area tertentu (karena puncak histogram lebih dari 1), namun yang paling tinggi berada disekitar x-73.79, diasumsikan mengapa bisa lebih banyak tupai diarea tersebut adalah karena lebih banyaknya pengamatan yang dilakukan disana juga. Pengamat lebih memilih area tersebut untuk mengamati karena mungkin area tengha taman tersebut lebih luas dan lebih banyak pohon, sehingga temuan tupai diarea tersebut 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:
Dari scatterplot diatas, pola persebaran spasial tupai membentuk pola memanjang diagonal dari arah barat daya ke timur laut,dengan asumsi bentuk ini mengikuti bentuk area pengamatan. Kepadatan titik terlihat lebih tinggi di bagian tengah hingga timur laut plot, menunjukkan bahwa pengamatan tupai lebih banyak ditemukan di area tersebut. Sesuai dengan grafik histrogam sebelumnya.
Interpretasi:
Tuliskan jawaban Anda di sini.
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:
Berdasarkan scatter plot diatas, tidak terlihat adanya kelompok tupai dengan warna bulu tertentu menempati area tertentu. Namun, Tupai dengan warna grey mendominasi hampir seluruh area secara merata, begitupun dengan tupai Cinnamon dan Black yang tersebar di antara titik-titik tupai abu-abu tanpa membentuk kluster di lokasi tertentu. Hal ini diasumsikan karena warna bulu merupakan karakteristik genetik individu, bukan hasil adaptasi terhadap zona tertentu dalam taman. Sehingga tupai-tupai tidak beradaptasi pada suatu wilayah berdasarkan warna bulunya
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:
Berdasarkan stacked bar diatas, Proporsi perilaku chasing (TRUE) pada semua kelompok warna bulu sangat kecil, berada di bawah 0,25 untuk setiap warna kelompok tupai. Namun, Tupai berwarna gray memiliki proporsi chasing sedikit lebih tinggi dibanding cinnamon dan black, namun perbedaannya tidak signifikan. Secara keseluruhan, perilaku chasing jarang terjadi pada semua kelompok warna bulu, sehingga dapat disimpulkan bahwa warna bulu tidak memiliki korelasi dengan perilaku mengejar/ cashing pada tupai di area yang diamati.
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:
Berdasarkan grafik diatas, proporsi perilaku makan (TRUE) antara Adult (+- 0.25) dan Juvenile (+- 0.30) tidak menunjukkan perbedaan yang signifikan. Juvenile terlihat sedikit lebih sering makan dibanding Adult, yang kemungkinan karena tupai muda membutuhkan lebih banyak energi untuk tumbuh. Kategori “?” memiliki proporsi eating yang nol, diasumsikan karena data tersebut merupakan observasi yang tidak lengkap sehingga perilakunya pun sulit tercatat dengan baik. Sementara itu, kategori NA memiliki proporsi eating yang mirip dengan Adult, namun tetap tidak dapat diinterpretasikan lebih lanjut karena identitas umur tupainya tidak diketahui.
Gunakan facet_wrap() untuk membandingkan sebaran lokasi
tupai berdasarkan umur.
ggplot(squirrel, aes(x = long, y = long)) +
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:
Berdasarkan scatter plot diatas, sebaran tupai Adult dan Juvenile sama-sama membentuk pola garis diagonal yang memanjang dari barat daya ke timur laut, mengikuti rentang koordinat yang sama (sudah sesuai dengan scatter plot disoal 3). Tidak terlihat perbedaan pola lokasi yang signifikan antara kedua kelompok umur tersebut, yang menunjukkan bahwa tupai muda dan dewasa hidup berdampingan di area yang sama dalam area pengamatan. Hal ini diasumsikan karena tupai tidak memisahkan wilayah berdasarkan umur karena juvenile biasanya masih berada di dekat induknya, sehingga lokasi kemunculannya pun tumpang tindih dengan Adult.
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:
Interpretasi:
Dari scatterplot diatas yang mana dipisah antara kategori warna dan umur dapat dilihat bahwa tupai Adult (segitiga) mendominasi hampir seluruh area pengamatan di semua warna bulu, sementara Juvenile (kotak) jumlahnya jauh lebih sedikit dan tersebar di antara titik-titik Adult. Dari warna bulu, warna gray tetap mendominasi baik pada kelompok Adult maupun Juvenile, sedangkan Cinnamon dan Black muncul lebih jarang di kedua kelompok umur. Hal ini diasumsikan bahwa populasi tupai di area pengamatan didominasi oleh tupai dewasa berbulu abu-abu, dan tidak ada kombinasi warna bulu dan umur tertentu yang cenderung menempati zona geografis yang berbeda dalam area pengamatan.
Buat satu visualisasi tambahan berdasarkan pertanyaan analitis yang Anda susun sendiri.
Contoh pertanyaan:
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:
Apakah perilaku berlari (running) berbeda antar kelompok umur tupai?
Interpretasi:
Berdasarkan grafik diatas, proporsi perilaku running (TRUE) pada kelompok “?”, Adult, dan Juvenile relatif serupa, masing-masing berada di nilai sekitar 0.25 . Hal ini menunjukkan bahwa tupai dewasa maupun muda memiliki kecenderungan berlari yang hampir sama, kemungkinan karena berlari merupakan perilaku dasar tupai untuk menghindari predator atau berpindah tempat yang dilakukan oleh semua kelompok umur secara merata. Satu-satunya yang sedikit berbeda adalah kelompok NA yang proporsi running-nya lebih rendah, yakni dinilai 0.20, namun hal ini sulit diinterpretasikan lebih lanjut karena identitas umurnya tidak diketahui.
Tuliskan 3–5 insight utama yang diperoleh dari visualisasi squirrel data.
Kesimpulan:
1.Tupai berbulu gray merupakan yang paling dominan di area pengamatan dan tersebar secara merata di seluruh area pengamatan tanpa pengelompokan geografis berdasarkan warna bulu. 2.Pola Persebaran tupai mengikuti bentuk fisik area pengamatan yang memanjang diagonal dari barat daya ke timur laut, dengan kepadatan tertinggi di bagian tengah hingga timur laut taman. 3.Perilaku foraging merupakan perilaku yang paling sering teramati dibanding perilaku lainnya, sementara perilaku seperti chasing dan moans sangat jarang terjadi pada semua kelompok. 4.Tidak terdapat perbedaan signifikan dalam perilaku maupun lokasi antara tupai Adult dan Juvenile, yang mengindikasikan bahwa kedua kelompok umur hidup berdampingan di area yang sama dalam area pengamatan. 5.Warna bulu dan kelompok umur tidak memiliki korelasi dengan lokasi geografis maupun kecenderungan perilaku tertentu.
Kumpulkan file dalam format HTML. Pastikan dokumen memuat: