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   N.unique :3018     N.unique : 339  
##  Median :-73.97   Median :40.78   N.blank  :   0     N.blank  :   0  
##  Mean   :-73.97   Mean   :40.78   Min.nchar:  13     Min.nchar:   3  
##  3rd Qu.:-73.96   3rd Qu.:40.79   Max.nchar:  14     Max.nchar:   3  
##  Max.   :-73.95   Max.   :40.80                                      
##                                                                      
##        shift           date          hectare_squirrel_number        age      
##  Length   :3023   Min.   :10062018   Min.   : 1.000          Length   :3023  
##  N.unique :   2   1st Qu.:10082018   1st Qu.: 2.000          N.unique :   3  
##  N.blank  :   0   Median :10122018   Median : 3.000          N.blank  :   0  
##  Min.nchar:   2   Mean   :10119487   Mean   : 4.124          Min.nchar:   1  
##  Max.nchar:   2   3rd Qu.:10142018   3rd Qu.: 6.000          Max.nchar:   8  
##                   Max.   :10202018   Max.   :23.000          NAs      : 121  
##                                                                              
##  primary_fur_color highlight_fur_color
##  Length   :3023    Length   :3023     
##  N.unique :   3    N.unique :  10     
##  N.blank  :   0    N.blank  :   0     
##  Min.nchar:   4    Min.nchar:   4     
##  Max.nchar:   8    Max.nchar:  22     
##  NAs      :  55    NAs      :1086     
##                                       
##  combination_of_primary_and_highlight_color    color_notes        location   
##  Length   :3023                             Length   :3023   Length   :3023  
##  N.unique :  22                             N.unique : 135   N.unique :   2  
##  N.blank  :   0                             N.blank  :   0   N.blank  :   0  
##  Min.nchar:   1                             Min.nchar:   3   Min.nchar:  12  
##  Max.nchar:  27                             Max.nchar: 153   Max.nchar:  12  
##                                             NAs      :2841   NAs      :  64  
##                                                                              
##  above_ground_sighter_measurement specific_location  running       
##  Length   :3023                   Length   :3023    Mode :logical  
##  N.unique :  41                   N.unique : 304    FALSE:2293     
##  N.blank  :   0                   N.blank  :   0    TRUE :730      
##  Min.nchar:   1                   Min.nchar:   4                   
##  Max.nchar:   5                   Max.nchar: 102                   
##  NAs      : 114                   NAs      :2547                   
##                                                                    
##   chasing         climbing         eating         foraging      
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:2744      FALSE:2365      FALSE:2263      FALSE:1588     
##  TRUE :279       TRUE :658       TRUE :760       TRUE :1435     
##                                                                 
##                                                                 
##                                                                 
##                                                                 
##   other_activities    kuks           quaas           moans        
##  Length   :3023    Mode :logical   Mode :logical   Mode :logical  
##  N.unique : 307    FALSE:2921      FALSE:2973      FALSE:3020     
##  N.blank  :   0    TRUE :102       TRUE :50        TRUE :3        
##  Min.nchar:   4                                                   
##  Max.nchar: 132                                                   
##  NAs      :2586                                                   
##                                                                   
##  tail_flags      tail_twitches   approaches      indifferent    
##  Mode :logical   Mode :logical   Mode :logical   Mode :logical  
##  FALSE:2868      FALSE:2589      FALSE:2845      FALSE:1569     
##  TRUE :155       TRUE :434       TRUE :178       TRUE :1454     
##                                                                 
##                                                                 
##                                                                 
##                                                                 
##  runs_from       other_interactions      lat_long      zip_codes    
##  Mode :logical   Length   :3023     Length   :3023   Min.   :10090  
##  FALSE:2345      N.unique : 197     N.unique :3023   1st Qu.:12081  
##  TRUE :678       N.blank  :   0     N.blank  :   0   Median :12420  
##                  Min.nchar:   2     Min.nchar:  38   Mean   :11828  
##                  Max.nchar: 106     Max.nchar:  45   3rd Qu.:12423  
##                  NAs      :2783                      Max.   :12423  
##                                                      NAs    :3014   
##  community_districts borough_boundaries city_council_districts police_precincts
##  Min.   :11          Min.   :4          Min.   :19.00          Min.   :10      
##  1st Qu.:19          1st Qu.:4          1st Qu.:19.00          1st Qu.:13      
##  Median :19          Median :4          Median :19.00          Median :13      
##  Mean   :19          Mean   :4          Mean   :19.07          Mean   :13      
##  3rd Qu.:19          3rd Qu.:4          3rd Qu.:19.00          3rd Qu.:13      
##  Max.   :23          Max.   :4          Max.   :51.00          Max.   :18      
## 

Tuliskan penjelasan singkat mengenai struktur data.

Interpretasi:

Data squirrel merupakan dataset observasi tupai yang berisi informasi mengenai karakteristik dan perilaku tupai di suatu area pengamatan. Struktur data ini terdiri dari beberapa variabel, seperti koordinat lokasi (long dan lat), kelompok umur (age), warna bulu utama (primary_fur_color), serta berbagai perilaku tupai seperti makan (eating) dan berlari (running). Setiap baris pada dataset merepresentasikan satu pengamatan tupai.

5 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 grafik bar chart di atas, dapat dilihat bahwa warna bulu yang paling dominan adalah gray dengan sekitar 2400 an.

6 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: berdasarkan grafik histogram di atas, dapat dilihat bahwa lokasi pengamatan tupai tidak terkonsentrasi pada area tertentu karena data tupai tersebar di segala sisi.

7 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:

Berdasarkan scatter plot di atas, pola penyebaran tupai di titik (-73.965, 40.785) mengalami keunikan. pada area koordinat tersebut, tidak ada titik pada area tersebut. Kemungkinan kasus yang terjadi adalah ada something seperti gunung atau batu yang membuat para tupai tidak melewati area tersebut.

8 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:

tupai berwarna cinnamon dan gray cenderung merata di semua area, tetapi pada tupai black cenderung berada di area terntentu.

9 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:

Berdasarkan grafik bar chart di atas, terlihat memang bahwa proporsi gray sedikit lebih besar mengenai perilaku chasing daripada yang lain, tetapi tidak terlalu ada perbedaan proporsi yang signifikan dari warna satu dengan warna yang lain kerena masih di bawah 0.15.

10 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: dari grafik bar chart

11 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:

Berdasarkan plot di atas, Tupai dewasa (adult) dan tupai muda (juvenile) memiliki pola lokasi yang relatif mirip, karena keduanya tersebar di berbagai area pengamatan. Namun, jumlah tupai dewasa terlihat lebih banyak dan penyebarannya lebih luas dibanding tupai muda yang cenderung lebih sedikit dan terkonsentrasi pada beberapa area tertentu.

12 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:

Berdasarkan scatter plot di atas, tupai dewasa yang berbulu abu abu lebih merata di seluruh wilayah

13 9. Visualisasi Pilihan Mahasiswa

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:

Apakah perilaku berlari (running) berbeda antara tupai dewasa (adult) dan muda (juvenile)?

Interpretasi: Berdasarkan visualisasi, tupai dewasa cenderung memiliki proporsi perilaku berlari yang lebih tinggi dibanding tupai muda. Namun, perbedaannya tidak terlalu besar sehingga kedua kelompok umur masih menunjukkan pola perilaku yang relatif mirip.

14 10. Kesimpulan

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

Kesimpulan:

1.Jumlah tupai abu abu lebih banyak dibandingkan warna lain. 2.kelompok tupai tertentu memiliki kecendurungan aktivitas tidak makan. 3.Tupai cenderung menghindari suatu lokasi tertentu. 4. 5.

15 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.