Anisa Istiqhfariyanti_M0501261002_Tugas2

Author

Anisa Istiqhfariyanti_M0501261002

1. Comparison

Calculate the average cty for each manufacturer, select the top 10, create a comparison plot, and summarize the main finding

library(ggplot2)
Warning: package 'ggplot2' was built under R version 4.5.3
pacman::p_load("ggplot2", "tidyverse", "ggridges")

head(mpg)
# A tibble: 6 × 11
  manufacturer model displ  year   cyl trans      drv     cty   hwy fl    class 
  <chr>        <chr> <dbl> <int> <int> <chr>      <chr> <int> <int> <chr> <chr> 
1 audi         a4      1.8  1999     4 auto(l5)   f        18    29 p     compa…
2 audi         a4      1.8  1999     4 manual(m5) f        21    29 p     compa…
3 audi         a4      2    2008     4 manual(m6) f        20    31 p     compa…
4 audi         a4      2    2008     4 auto(av)   f        21    30 p     compa…
5 audi         a4      2.8  1999     6 auto(l5)   f        16    26 p     compa…
6 audi         a4      2.8  1999     6 manual(m5) f        18    26 p     compa…
avg_city <- mpg %>%
  group_by(manufacturer) %>%
  summarise(avg_city = mean(cty, na.rm = TRUE)) %>% 
  arrange(desc(avg_city)) %>%
  slice_head(n = 10)
avg_city <- avg_city %>%
  mutate(
    highlight = if_else(
      manufacturer == "honda",
      "Honda",
      "Other"
    )
  )

ggplot(
  avg_city,
  aes(
    x = reorder(manufacturer, avg_city),
    y = avg_city,
    color = highlight
  )
) +
  geom_segment(
    aes(
      xend = reorder(manufacturer, avg_city),
      y = 0,
      yend = avg_city
    ),
    linewidth = 1.2
  ) +
  geom_point(size = 5) +
  geom_text(
    aes(
      label = round(avg_city, 2)
    ),
    hjust = -0.2,
    size = 4,
    color = "black"
  ) +
  coord_flip() +
  scale_color_manual(
    values = c(
      "Honda" = "#E76F51",
      "Other" = "#457B9D"
    )
  ) +
  scale_y_continuous(
    expand = expansion(mult = c(0, 0.1))
  ) +
  labs(
    title = "10 Manufacturer dengan Rata-rata City Mileage Tertinggi",
    x = NULL,
    y = "Rata-rata City Mileage (mpg)",
    color = NULL
  ) +
  theme_minimal(base_size = 12) +
  theme(
    legend.position = "none",
    plot.title = element_text(
      size = 16,
      face = "bold"
    )
  )

Interpretasi Grafik :

Grafik menunjukkan 10 produsen kendaraan dengan rata-rata efisiensi bahan bakar di dalam kota (cty) tertinggi. Honda menempati posisi pertama dengan rata-rata cty sebesar 24,44, diikuti oleh Volkswagen (20,93) dan Subaru (19,29). Sementara itu, Ford berada pada posisi ke-10 dengan rata-rata cty sebesar 14,00. Dengan demikian, di antara 10 produsen kendaraan dengan rata-rata cty tertinggi, Honda memiliki rata-rata efisiensi bahan bakar di dalam kota paling tinggi.

2. Distribution

Choose one numerical variable, compare its distribution across one categorical variable, improve the plot appearance, and interpret the pattern.

ggplot(data = diamonds,
       aes(x = carat,
           y = clarity,
           fill = clarity)) +
  geom_density_ridges(
    alpha = 0.7,
    show.legend = FALSE) +
  labs(
    title = "Distribusi Berat Berlian Berdasarkan Tingkat Kejernihan",
    x = "Berat Berlian (Karat)",
    y = "Tingkat Kejernihan") +
  theme_minimal(base_size = 12)
Picking joint bandwidth of 0.057

Interpretasi Grafik

  1. Sebagian besar berlian memiliki berat relatif kecil, dengan konsentrasi terbesar berada pada kisaran sekitar 0,2–1,0 carat. Hampir semua kategori clarity menunjukkan kepadatan yang tinggi pada rentang ini.

  2. Distribusi carat berbeda antar tingkat kejernihan. Kategori IF dan VVS1 terlihat sangat terkonsentrasi pada berat yang lebih kecil, terutama sekitar 0,3–0,5 carat.

  3. Pada kategori SI1, SI2, dan I1, distribusi terlihat lebih menyebar ke kanan. Artinya, terdapat lebih banyak berlian dengan ukuran yang lebih besar dibandingkan kategori kejernihan yang lebih tinggi.

  4. I1 memiliki sebaran yang paling luas, dengan beberapa berlian memiliki berat hingga lebih dari 3 carat. Hal ini menunjukkan bahwa berlian dengan tingkat kejernihan I1 dalam dataset ini mencakup rentang berat yang lebih besar.

  5. Terlihat beberapa puncak (peaks) pada distribusi, terutama di sekitar 0,3–0,4 carat dan 1 carat. Ini menunjukkan adanya konsentrasi observasi pada ukuran-ukuran berlian tertentu.

3. Relationship

Visualize the relationship between carat and price, add at least one relevant aesthetic, apply suitable customization, and explain the relationship shown.

set.seed(377)
diamonds_sample <- diamonds |>
  slice_sample(n = 3000)

ggplot(data = diamonds_sample,
       aes(x = carat,
           y = price,
           color = clarity)) +
  geom_point(
    alpha = 0.45,
    size = 2
  )  +
  geom_smooth(
    aes(group = 1),
    method = "loess",
    se = TRUE,
    color = "black",
    linewidth = 1.1,
    alpha = 0.15
  ) +
  labs(
    title = "Hubungan Berat dan Harga Berlian Berdasarkan Tingkat Kejernihan",
    x = "Berat Berlian (Karat)",
    y = "Harga (USD)",
    color = "Tingkat Kejernihan") +
  theme_minimal(base_size = 12)
`geom_smooth()` using formula = 'y ~ x'

Interpretasi Grafik

  1. Terdapat hubungan positif antara berat dan harga berlian. Secara umum, semakin besar berat berlian (carat), semakin tinggi pula harganya. Pola ini terlihat dari titik-titik yang cenderung bergerak naik dari kiri bawah ke kanan atas.

  2. Sebagian besar berlian dalam sampel memiliki berat kurang dari 1,5 carat dan harga relatif berada di bawah sekitar USD 10.000. Berlian dengan berat lebih dari 2 carat relatif lebih sedikit dalam sampel.

  3. Tingkat kejernihan menunjukkan pola yang cukup berbeda pada berbagai ukuran berlian. Berlian dengan tingkat kejernihan tinggi seperti IF dan VVS banyak terlihat pada ukuran carat yang relatif kecil, sedangkan kategori seperti SI1, SI2, dan I1 juga mencakup berlian dengan ukuran yang lebih besar.

  4. Pada berat yang sama, harga berlian cukup bervariasi. Misalnya, pada kisaran sekitar 1 carat, terdapat berlian dengan harga mulai dari beberapa ribu USD hingga lebih dari USD 10.000. Hal ini menunjukkan bahwa harga tidak hanya berkaitan dengan berat, tetapi juga dipengaruhi oleh karakteristik berlian lainnya.

  5. Variasi harga semakin besar ketika berat berlian meningkat. Pada carat yang lebih tinggi, rentang harga terlihat semakin lebar. Misalnya, berlian sekitar 2 carat memiliki harga yang sangat bervariasi.

4. Time Series

Visualize psavert over time, use clear labels and a suitable theme, highlight or annotate a noticeable change, and provide a short interpretation.

# Menghitung rata-rata personal saving rate
avg_psavert <- mean(economics$psavert, na.rm = TRUE)

ggplot(data = economics,
       aes(x = date,
           y = psavert)) +
  geom_area(
    alpha = 0.15
  ) +
  geom_line(linewidth = 0.7) +
  scale_y_continuous(
    labels = scales::comma
  ) +
  geom_hline(
    yintercept = avg_psavert,
    linetype = "dashed",
    linewidth = 0.7
  ) +
  geom_vline(
    xintercept = as.Date("1985-01-01"),
    linetype = "dashed",
    linewidth = 0.6
  )+
  annotate(
    "text",
    x = as.Date("1985-01-01"),
    y = 14,
    label = "Penurunan mulai terlihat",
    hjust = -0.1,
    vjust = 0,
    size = 3.5
  )+
  labs(
    title = "Perkembangan Personal Saving Rate",
    subtitle = "Tren tingkat tabungan pribadi dari waktu ke waktu",
    x = "Tahun",
    y = "Personal Saving Rate (%)",
    caption = paste0(
      "Garis putus-putus menunjukkan rata-rata sebesar ",
      round(avg_psavert, 2), "%"
    )
  ) +
  theme_minimal(base_size = 12)

Interpretasi Grafik

  1. Secara umum, personal saving rate menunjukkan tren menurun. Pada periode awal pengamatan, tingkat tabungan pribadi berada pada kisaran 10–15%. Namun, memasuki periode berikutnya, nilainya cenderung menurun hingga berada pada kisaran 5–8%.

  2. Pada akhir 1960-an hingga pertengahan 1970-an, personal saving rate relatif tinggi. Nilainya berfluktuasi pada kisaran 10-15%, dengan beberapa periode mencapai lebih dari 15%. Nilai tertinggi terlihat pada pertengahan 1970-an.

  3. Memasuki pertengahan 1980-an, terjadi penurunan yang cukup jelas. Personal saving rate mulai bergerak dari kisaran 10-12% menuju sekitar 7-9%. Setelah itu, nilainya cenderung berfluktuasi di sekitar tingkat yang lebih rendah.

  4. Pada periode 1990-an hingga pertengahan 2000-an, personal saving rate berada di bawah rata-rata. Sebagian besar nilai berada pada kisaran 5-8%, bahkan mencapai titik terendah sekitar 2-3% pada pertengahan 2000-an.

  5. Pada periode setelah pertengahan 2000-an, terlihat adanya pemulihan. Personal saving rate mulai meningkat dari sekitar 3% menuju kisaran 6-8%. Meskipun demikian, nilainya masih relatif lebih rendah dibandingkan periode awal pengamatan.

  6. Garis putus-putus menunjukkan rata-rata personal saving rate sebesar 8,57%. Sebagian besar pengamatan pada periode awal berada di atas rata-rata, sedangkan sebagian besar pengamatan setelah pertengahan 1980-an berada di bawah rata-rata.

5. Relationship

Create one visualization with at least three presentation problems, then redesign it using improvements such as color, theme, scale, labels, legend, or annotation, and briefly explain the changes.

# Initial Visualization
ggplot(economics,
       aes(x = date,
           y = psavert)) +
  geom_line() +
  labs(
    title = "Personal Saving Rate",
    x = "Date",
    y = "psavert"
  )

Masalah pada Visualisasi Awal

Visualisasi awal masih memiliki beberapa masalah dalam penyajian informasi, yaitu:

  1. Judul grafik kurang informatif
    Judul “Personal Saving Rate” belum menjelaskan bahwa grafik menunjukkan perubahan personal saving rate dari waktu ke waktu.

  2. Label sumbu kurang jelas
    Label sumbu-Y masih menggunakan nama variabel psavert, sehingga kurang informatif bagi pembaca yang belum mengetahui arti variabel tersebut.

  3. Skala sumbu waktu kurang optimal
    Sumbu-X menggunakan tanggal secara langsung sehingga label waktu dapat terlihat kurang sederhana dan kurang mudah dibaca untuk periode pengamatan yang panjang.

  4. Belum terdapat penekanan terhadap pola atau tren
    Grafik awal hanya menampilkan garis sehingga perubahan atau pola penting pada personal saving rate belum mendapatkan penekanan visual.

  5. Belum terdapat informasi pembanding
    Grafik awal tidak memiliki garis referensi atau informasi tambahan yang dapat membantu pembaca menilai posisi suatu nilai dibandingkan dengan kondisi rata-ratanya.

Oleh karena itu, visualisasi awal perlu diperbaiki melalui penggunaan judul dan label yang lebih informatif, penyesuaian skala waktu, penggunaan elemen visual tambahan, serta penambahan garis referensi agar informasi yang ditampilkan lebih mudah dipahami.

# Final Visualization
avg_psavert <- mean(economics$psavert, na.rm = TRUE)

ggplot(data = economics,
       aes(x = date,
           y = psavert)) +
  geom_area(
    fill = "#BDE0FE",
    alpha = 0.3
  ) +
  geom_line(linewidth = 0.7) +
  scale_y_continuous(
    labels = scales::comma
  ) +
  geom_hline(
    yintercept = avg_psavert,
    linetype = "dashed",
    linewidth = 0.7
  ) +
  geom_vline(
    xintercept = as.Date("2008-01-01"),
    linetype = "dashed",
    linewidth = 0.6
  )+
  annotate(
    "text",
    x = as.Date("2008-01-01"),
    y = 14,
    label = "Perubahan\n terlihat\n mulai\ntahun 2008",
    hjust = -0.1,
    vjust = 0,
    size = 3.5
  )+
  scale_x_date(
    date_breaks = "5 years",
    date_labels = "%Y",
    expand = expansion(mult = c(0.01, 0.01))
  ) +
  labs(
    title = "Perkembangan Personal Saving Rate",
    subtitle = "Tren tingkat tabungan pribadi dari waktu ke waktu",
    x = "Tahun",
    y = "Personal Saving Rate (%)",
    caption = paste0(
      "Garis putus-putus menunjukkan rata-rata sebesar ",
      round(avg_psavert, 2), "%"
    )
  ) +
  theme_minimal(base_size = 12)+
  theme(
    panel.grid.minor = element_blank()
  )

Penjelasan Perubahan

Penjelasan perubahan dari Visualisasi Awal menjadi Visualisasi Final :

  1. Perubahan judul
    • Visualisasi awal menggunakan judul “Personal Saving Rate”.
    • Pada visualisasi baru, judul diubah menjadi “Perkembangan Personal Saving Rate” agar lebih deskriptif dan langsung menunjukkan bahwa grafik menggambarkan perubahan dari waktu ke waktu.
  2. Penambahan subtitle
    • Visualisasi baru menambahkan subtitle “Tren tingkat tabungan pribadi dari waktu ke waktu”.
    • Subtitle membantu memberikan konteks mengenai informasi yang disajikan dalam grafik.
  3. Perubahan label sumbu Y
    • Label awal hanya menggunakan nama variabel psavert.
    • Label kemudian diubah menjadi “Personal Saving Rate (%)” sehingga lebih mudah dipahami oleh pembaca dan menunjukkan bahwa nilainya dalam bentuk persentase.
  4. Perubahan label sumbu X
    • Label awal menggunakan “Date”.
    • Label kemudian diubah menjadi “Tahun” karena informasi tanggal ditampilkan dalam bentuk tahun.
  5. Perubahan skala sumbu X
    • Label tanggal pada visualisasi awal kurang sederhana untuk grafik dengan periode pengamatan yang panjang.
    • Visualisasi baru hanya menampilkan tahun dengan interval tertentu sehingga sumbu X menjadi lebih ringkas dan mudah dibaca.
  6. Penambahan warna
    • Visualisasi awal hanya menampilkan garis tanpa area berwarna.
    • Visualisasi baru menambahkan area berwarna biru pastel di bawah garis untuk memberikan penekanan visual terhadap perubahan personal saving rate.
  7. Penambahan garis rata-rata
    • Visualisasi baru menambahkan garis putus-putus horizontal yang menunjukkan rata-rata personal saving rate sebesar 8,57%.
    • Garis ini membantu pembaca membandingkan nilai personal saving rate pada setiap periode dengan nilai rata-ratanya.
  8. Perbaikan tema
    • Visualisasi baru menggunakan theme_minimal() dengan beberapa penyesuaian.
    • Grid minor dihilangkan agar grafik terlihat lebih bersih dan tidak terlalu ramai.
  9. Penambahan penekanan terhadap pola atau tren
    • Grafik awal hanya menampilkan garis sehingga perubahan atau pola penting pada personal saving rate belum mendapatkan penekanan visual.
    • Grafik final ditambahkan garis vertikal untuk menekankan perubahan pola penting.

Kesimpulan Perubahan

Secara keseluruhan, redesign dilakukan untuk membuat grafik menjadi lebih informatif, mudah dibaca, dan lebih sesuai untuk presentasi. Perbaikan terutama dilakukan pada aspek warna, tema, skala, label, dan anotasi, sehingga pembaca dapat lebih mudah memahami tren personal saving rate dan membandingkannya dengan rata-rata sebesar 8,57%.