1 Tujuan Latihan

Latihan ini bertujuan untuk memperkenalkan dasar-dasar visualisasi data menggunakan ggplot2 melalui studi kasus squirrel data. Mahasiswa diharapkan mampu:

  1. Membaca dan memahami struktur data.
  2. Membuat visualisasi sederhana menggunakan ggplot2.
  3. Menggunakan aesthetic mapping seperti x, y, color, fill, dan shape.
  4. Membandingkan pola antar kelompok menggunakan visualisasi.
  5. Menulis interpretasi berdasarkan grafik.

2 Persiapan Package

library(tidyverse)

3 Membaca Data

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,…

4 Pemeriksaan Awal Data

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. struktur data ini termasuk dalam sebuah dataframe, lalu juga ada beberapa tipe data, seperti numerik dan karakter. # 1. Distribusi Warna Bulu Tupai

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. Berdasarkan data, warna “Gray” atau abu abu adalah warna dengan kuantitas terbanyak # 2. Distribusi Lokasi Berdasarkan Koordinat X

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.Lokasi tupai dengan pengamatan terbanyak terkonsentrasi pada area dengan X koordinat -73.97, hal tersebut dapat dikarenakan dengan habitat, jumlah makanan, dan lain lainnya

5 3. Sebaran Spasial Tupai

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. Berdasarkan data, dapat disimpulkan bahwa persebaran tupai yang memiliki kuantitas paling sedikit adalah -73.96 untuk kooordinat x dan 40.79 pada koordinat y, hal ini dapat dikarenakan faktor habitat, jumlah makanan

6 4. Sebaran Spasial Berdasarkan Warna Bulu

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.Berdasarkan data, warna bulu tertentu seperti warna hitam muncul pada koordinat x -73.96 dan y 40.79, selain itu persebaran warna lainnya seperti biru, dan hijau. Mencakupi sisa area yang terdapat pada distribusi tersebut

7 5. Perbandingan Perilaku Chasing Berdasarkan Warna Bulu

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 data, terdapat beberapa perbedaan mengenai perilaku chasing dengan warna bulu. Contohnya warna gray/abu abu yang memiliki tingkat terbanyak untuk perilaku chasing yang diamati, diikuti dengan warna hitam/black yang memiliki kuantitas lebih sedikit untuk perilaku chasing yang terekam. Artinya warna bulu gray/abu abu memiliki tingkat aktivitias tertinggi dibandingkan yang lain**

8 6. Perilaku Eating Berdasarkan Kelompok Umur

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.Berdasarkan data, perilaku makan untuk Juvenile memiliki jumlah yang lebih banyak ditemui dalam data, hal ini dapat dikarenakan oleh faktor seperti habitat, jumlah makanan, dan sebagainya

9 7. Faceting: Sebaran Spasial Berdasarkan Kelompok Umur

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:

Tuliskan jawaban Anda di sini.Berdasarkan data, Adult dan Juvenile memiliki pola lokasi yang berbeda, dan lokasi tersebut juga tampak cukup jauh. Hal ini dapat dikarenakan dengan jumlah makanan, habitat, dan lain sebagainya

10 8. Aesthetic Mapping: Warna dan Bentuk

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. Berdasarkan data yang diberikan, dikarenakan bentuk dewasa direpresentasikan dengan segitiga, dan remaja/juvenile dipresentasikan dengan segiempat. Dapat disimpulkan bahwa persebaran untuk remaja dapat ditemukan pada x koordinat -73.96 sampai -73.95 lalu 40.79 sampai 40.80 untuk koordinat Y

11 9. Visualisasi Pilihan Mahasiswa

Buat satu visualisasi tambahan berdasarkan pertanyaan analitis yang Anda susun sendiri.

Contoh pertanyaan:

# Scatter plot dengan facet untuk membandingkan perilaku makan
ggplot(squirrel, aes(x = long, y = lat, color = primary_fur_color)) +
  geom_point(alpha = 0.6, size = 1.5) +
  facet_wrap(~ eating) +
  scale_color_manual(values = c("Gray" = "gray50", "Black" = "black", "Cinnamon" = "brown")) +
  labs(
    title = "Spatial Distribution of Squirrels: Eating vs Not Eating",
    subtitle = "Comparison of squirrel locations based on eating behavior",
    x = "Longitude (X Coordinate)",
    y = "Latitude (Y Coordinate)",
    color = "Fur Color",
    caption = "Facet TRUE = eating observed, FALSE = no eating observed"
  ) +
  theme_minimal() +
  theme(
    strip.background = element_rect(fill = "lightgray", color = NA),
    strip.text = element_text(face = "bold")
  )

Pertanyaan Analitis: 1 Apakah tupai yang sedang makan lebih sering terlihat di lokasi tertentu? 2 Apakah perilaku running berbeda antar kelompok umur?

Interpretasi: 1 Berdasarkan data yang tersedia, tupia yang sedang makan lebih sering muncul pada lokasi yang tampaknya tersedia persediaan makanan, yaitu di x koordinat -73.96 sampai -73.98 dan y koordinat 40.77 sampai 40.78 2 iya, berbeda dikarenakan juvenile memiliki tingkat keaktivan yang lebih tinggi dibandingkan dewasa

Tuliskan jawaban Anda di sini.

12 10. Kesimpulan

Tuliskan 3–5 insight utama yang diperoleh dari visualisasi squirrel data.

Kesimpulan:

  1. Perilaku makan lebih sering muncul pada lokasi yang tampaknya tersedia persediaan makanan, yaitu di x koordinat -73.96 sampai -73.98 dan y koordinat 40.77 sampai 40.78
  2. persebaran untuk remaja dapat ditemukan pada x koordinat -73.96 sampai -73.95 lalu 40.79 sampai 40.80 untuk koordinat Y
  3. perilaku makan untuk Juvenile memiliki jumlah yang lebih banyak ditemui dalam data, hal ini dapat dikarenakan oleh faktor seperti habitat, jumlah makanan, dan sebagainya
  4. Lokasi tupai dengan pengamatan terbanyak terkonsentrasi pada area dengan X koordinat -73.97, hal tersebut dapat dikarenakan dengan habitat, jumlah makanan, dan lain lainnya
  5. Jumlah dengan bulu warna hitam memiliki kuantitas paling sedikit dibandingkan bulu lainnya

13 Catatan Pengumpulan

Kumpulkan file dalam format HTML. Pastikan dokumen memuat:

  1. Kode R.
  2. Output grafik.
  3. Interpretasi setiap grafik.
  4. Kesimpulan akhir.
  5. [BONUS] Publish di Rpubs! Berikan link Rpubs Anda, dan saya akan berkunjung untuk melihat-lihat. Kalian bisa mulai dari sini: https://rpubs.com/about/getting-started.