Visualisasi Data Kategorik dan Diskrit
Pembelajaran kali ini akan membahas tentang visualisasi data kategorik dan diskrit. Data kategorik adalah data yang terdiri dari kategori atau kelompok, sedangkan data diskrit adalah data yang terdiri dari nilai-nilai yang dapat dihitung atau dihitung secara terpisah. Sebagai contoh, pembelajaran kali ini akan menggunakan data Bike Sharing yang berisi informasi tentang penggunaan sepeda di sebuah kota.
Pendahuluan: Memahami Data Kategorik dan Diskrit
Dataset ini berasal dari sistem bike sharing di Washington, D.C., yang diperoleh dari UCI Machine Learning Repository yang dapat di akses melalui link ini. Dataset ini mencatat aktivitas penyewaan sepeda setiap hari selama dua tahun. Selain jumlah sepeda yang disewa, sistem juga merekam musim, kondisi cuaca, serta apakah hari tersebut merupakan hari kerja atau bukan. Data ini digunakan oleh pengelola kota untuk menjawab pertanyaan operasional:
Kapan permintaan sepeda meningkat, dan dalam kondisi apa layanan harus disiapkan lebih banyak?
Artinya, analisis dilakukan untuk memahami pola penggunaan dalam berbagai situasi, bukan sekadar menghitung rata-rata penyewaan. Sebelum melakukan analisis lebih lanjut, penting untuk memahami struktur data dan distribusi kategori dalam dataset. Visualisasi digunakan sebagai alat eksplorasi awal untuk melihat bagaimana data tersusun dan bagaimana kategori-kategori dalam data terdistribusi.
Memuat Data dan Menjelajahi Struktur Data
Import data dari file CSV ke dalam R menggunakan fungsi
read.csv(). Pastikan untuk menyesuaikan path file dengan
lokasi di mana dataset disimpan di komputer Anda. Berikut adalah kode
untuk memuat data:
## instant dteday season yr mnth holiday weekday workingday weathersit
## 1 1 2011-01-01 1 0 1 0 6 0 2
## 2 2 2011-01-02 1 0 1 0 0 0 2
## 3 3 2011-01-03 1 0 1 0 1 1 1
## 4 4 2011-01-04 1 0 1 0 2 1 1
## 5 5 2011-01-05 1 0 1 0 3 1 1
## 6 6 2011-01-06 1 0 1 0 4 1 1
## temp atemp hum windspeed casual registered cnt
## 1 0.344167 0.363625 0.805833 0.1604460 331 654 985
## 2 0.363478 0.353739 0.696087 0.2485390 131 670 801
## 3 0.196364 0.189405 0.437273 0.2483090 120 1229 1349
## 4 0.200000 0.212122 0.590435 0.1602960 108 1454 1562
## 5 0.226957 0.229270 0.436957 0.1869000 82 1518 1600
## 6 0.204348 0.233209 0.518261 0.0895652 88 1518 1606
Tabel di atas menunjukkan beberapa baris pertama dari dataset bike
sharing. Setiap baris mewakili data harian tentang penggunaan sepeda,
dengan berbagai kolom yang mencakup informasi seperti tanggal, jumlah
sepeda yang disewa, kondisi cuaca, dan lain-lain. Tabel data berisi
ratusan baris pengamatan. Variabel kategorik dalam dataset ini termasuk
season, weathersit, dan
workingday.
| No. | Variabel Kategorik | Keterangan |
|---|---|---|
| 1. | season |
Variabel Musim, diantaranya: 1 = Spring (musim semi) 2 = Summer (musim panas) 3 = Fall (musim gugur) 4 = Winter (musim dingin) |
| 2. | weathersit |
Variabel Kondisi Cuaca, diantaranya: 1 = Clear (cerah) 2 = Cloudy (berawan) 3 = Light Rain (hujan ringan) 4 = Heavy Rain (hujan lebat atau badai) |
| 3. | workingday |
Variabel Jenis Hari, diantaranya: 1 = Working Day (hari kerja) 0 = Holiday (hari libur) |
Untuk memudahkan dalam interpretasi visualisasi dan analisis selanjutnya, kita dapat melakukan recode pada variabel-variabel kategorik tersebut untuk mengganti angka dengan label yang lebih deskriptif.
- Recode variabel
seasonuntuk mengganti angka dengan nama musim yang lebih mudah dipahami. Berikut adalah kode untuk melakukan recode pada variabelseason:
# Ubah kode musim menjadi nama musim
bike_data$season <- factor(bike_data$season,
levels = c(1, 2, 3, 4),
labels = c("Spring", "Summer", "Fall", "Winter"))- Recode variabel
weathersituntuk mengganti angka dengan deskripsi kondisi cuaca yang lebih mudah dipahami. Berikut adalah kode untuk melakukan recode pada variabelweathersit:
# Ubah kode kondisi cuaca menjadi deskripsi yang lebih mudah dipahami
bike_data$weathersit <- factor(bike_data$weathersit,
levels = c(1, 2, 3, 4),
labels = c("Clear", "Cloudy", "Light Rain", "Heavy Rain"))- Recode variabel
workingdayuntuk mengganti angka dengan deskripsi yang lebih mudah dipahami. Berikut adalah kode untuk melakukan recode pada variabelworkingday:
# Ubah kode jenis hari menjadi deskripsi yang lebih mudah dipahami
bike_data$workingday <- factor(bike_data$workingday,
levels = c(0, 1),
labels = c("Holiday", "Working Day"))Variabel yang telah direcode sekarang memiliki label yang lebih deskriptif, sehingga memudahkan dalam interpretasi visualisasi dan analisis selanjutnya. Berikut adalah tampilan beberapa baris pertama dan terakhir dari dataset setelah melakukan recode pada variabel kategorik:
## instant dteday season yr mnth holiday weekday workingday weathersit
## 1 1 2011-01-01 Spring 0 1 0 6 Holiday Cloudy
## 2 2 2011-01-02 Spring 0 1 0 0 Holiday Cloudy
## 3 3 2011-01-03 Spring 0 1 0 1 Working Day Clear
## 4 4 2011-01-04 Spring 0 1 0 2 Working Day Clear
## 5 5 2011-01-05 Spring 0 1 0 3 Working Day Clear
## 6 6 2011-01-06 Spring 0 1 0 4 Working Day Clear
## temp atemp hum windspeed casual registered cnt
## 1 0.344167 0.363625 0.805833 0.1604460 331 654 985
## 2 0.363478 0.353739 0.696087 0.2485390 131 670 801
## 3 0.196364 0.189405 0.437273 0.2483090 120 1229 1349
## 4 0.200000 0.212122 0.590435 0.1602960 108 1454 1562
## 5 0.226957 0.229270 0.436957 0.1869000 82 1518 1600
## 6 0.204348 0.233209 0.518261 0.0895652 88 1518 1606
Data yang telah direcode menunjukkan bahwa variabel
season sekarang memiliki label “Spring”, “Summer”, “Fall”,
dan “Winter”. Variabel weathersit memiliki label “Clear”,
“Cloudy”, “Light Rain”, dan “Heavy Rain”. Variabel
workingday memiliki label “Holiday” dan “Working Day”.
Dengan menggunakan label yang lebih deskriptif, kita dapat dengan mudah
memahami kategori-kategori dalam dataset dan melakukan analisis yang
lebih informatif. Selain itu, kita juga dapat melihat struktur data
untuk memastikan bahwa variabel-variabel kategorik telah direcode dengan
benar.
## 'data.frame': 731 obs. of 16 variables:
## $ instant : int 1 2 3 4 5 6 7 8 9 10 ...
## $ dteday : chr "2011-01-01" "2011-01-02" "2011-01-03" "2011-01-04" ...
## $ season : Factor w/ 4 levels "Spring","Summer",..: 1 1 1 1 1 1 1 1 1 1 ...
## $ yr : int 0 0 0 0 0 0 0 0 0 0 ...
## $ mnth : int 1 1 1 1 1 1 1 1 1 1 ...
## $ holiday : int 0 0 0 0 0 0 0 0 0 0 ...
## $ weekday : int 6 0 1 2 3 4 5 6 0 1 ...
## $ workingday: Factor w/ 2 levels "Holiday","Working Day": 1 1 2 2 2 2 2 1 1 2 ...
## $ weathersit: Factor w/ 4 levels "Clear","Cloudy",..: 2 2 1 1 1 1 2 2 1 1 ...
## $ temp : num 0.344 0.363 0.196 0.2 0.227 ...
## $ atemp : num 0.364 0.354 0.189 0.212 0.229 ...
## $ hum : num 0.806 0.696 0.437 0.59 0.437 ...
## $ windspeed : num 0.16 0.249 0.248 0.16 0.187 ...
## $ casual : int 331 131 120 108 82 88 148 68 54 41 ...
## $ registered: int 654 670 1229 1454 1518 1518 1362 891 768 1280 ...
## $ cnt : int 985 801 1349 1562 1600 1606 1510 959 822 1321 ...
Berdasarkan struktur data, kita dapat melihat bahwa variabel
season, weathersit, dan
workingday sekarang merupakan faktor dengan label yang
sesuai. Hal ini memudahkan dalam analisis dan visualisasi data
kategorik, karena kita dapat langsung memahami kategori-kategori yang
ada tanpa harus mengingat kode angka yang sebelumnya digunakan. Dengan
data yang telah direcode, kita siap untuk melakukan visualisasi dan
analisis lebih lanjut untuk memahami pola penggunaan sepeda berdasarkan
musim, kondisi cuaca, dan jenis hari (hari kerja atau hari libur).
Visualisasi Data Kategori
Data kategorik dapat divisualisasikan menggunakan berbagai jenis grafik, seperti bar chart, pie chart, atau stacked bar chart. Visualisasi ini membantu dalam memahami distribusi dara kategori dan hubungan antara kategori-kategori tersebut.
Visualisasi Distribusi Musim
Musim adalah salah satu variabel kategorik dalam dataset bike sharing yang menunjukkan musim dalam setahun. Visualisasi distribusi musim dapat memberikan wawasan tentang bagaimana penggunaan sepeda bervariasi di setiap musim.
# Hitung jumlah pengguna sepeda untuk setiap musim
season_counts <- bike_data %>%
group_by(season) %>%
summarise(count = n())
# Temukan musim dengan jumlah pengguna sepeda terbanyak
max_season <- season_counts %>%
filter(count == max(count)) %>%
pull(season)
# Visualisasi distribusi musim dengan warna berbeda untuk musim terbanyak
ggplot(bike_data, aes(x = season)) +
geom_bar(aes(fill = season == max_season)) +
scale_fill_manual(values = c("steelblue", "coral"), guide = FALSE) +
labs(title = "Distribusi Musim dalam Data Bike Sharing",
x = "Musim",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Visualisasi ini menunjukkan bagaimana data tersebar di setiap musim. Dengan menggunakan warna yang berbeda untuk musim dengan jumlah pengguna sepeda terbanyak, kita dapat dengan mudah mengidentifikasi musim mana yang memiliki permintaan sepeda tertinggi. Informasi ini dapat membantu pengelola kota dalam merencanakan layanan sepeda berdasarkan musim, seperti menambah jumlah sepeda yang tersedia selama musim dengan permintaan tinggi atau melakukan promosi khusus untuk meningkatkan penggunaan sepeda selama musim dengan permintaan rendah.
Visualisasi Distribusi Jenis Hari
Jenis hari, yang ditunjukkan oleh variabel workingday,
menunjukkan apakah hari tersebut merupakan hari kerja atau hari libur.
Visualisasi distribusi jenis hari dapat memberikan informasi tentang
bagaimana penggunaan sepeda bervariasi antara hari kerja dan hari
libur.
# Visualisasi distribusi jenis hari
ggplot(bike_data, aes(x = workingday)) +
geom_bar(aes(fill = workingday)) +
scale_fill_manual(values = c("Holiday" = "steelblue", "Working Day" = "coral"), name = "Waktu Pengunaan Sepeda")+
labs(title = "Distribusi Jenis Hari dalam Data Bike Sharing",
x = "Jenis Hari",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Visualisasi di atas menunjukkan bahwa sebagian besar penggunaan sepeda terjadi pada hari kerja (Working Day), yang ditandai dengan warna coral. Sementara itu, sebagian kecil berasal dari hari libur (Holiday), yang ditandai dengan warna steelblue. Hal ini dapat memberikan informasi awal tentang pola penggunaan sepeda dalam dataset, di mana permintaan sepeda mungkin lebih tinggi pada hari kerja dibandingkan dengan hari libur. Informasi ini dapat membantu pengelola kota dalam merencanakan layanan sepeda berdasarkan jenis hari, seperti menambah jumlah sepeda yang tersedia selama hari kerja atau melakukan promosi khusus untuk meningkatkan penggunaan sepeda selama hari libur.
Selain menggunakan diagram batang (bar chart) untuk memvisualisasikan distribusi jenis hari, kita juga dapat menggunakan diagram lingkaran (pie chart) untuk memberikan perspektif yang berbeda tentang proporsi masing-masing kategori dalam keseluruhan data. Pie chart dapat memberikan gambaran yang lebih intuitif tentang bagaimana distribusi jenis hari terbagi antara hari kerja dan hari libur. Berikut adalah kode untuk membuat pie chart yang menunjukkan distribusi jenis hari dalam dataset bike sharing:
# Hitung jumlah pengguna sepeda untuk setiap kategori jenis hari
workingday_counts <- bike_data %>%
group_by(workingday) %>%
summarise(count = n()) %>%
mutate(percentage = count / sum(count) * 100)
# Visualisasi distribusi jenis hari menggunakan pie chart dengan persentase
ggplot(workingday_counts, aes(x = "", y = count, fill = workingday
)) +
geom_bar(stat = "identity", width = 1) +
coord_polar(theta = "y") +
scale_fill_manual(values = c("Holiday" = "steelblue", "Working Day" = "coral")) +
geom_text(aes(label = paste0(round(percentage, 1), "%")), position = position_stack(vjust = 0.5)) +
labs(title = "Distribusi Jenis Hari dalam Data Bike Sharing") +
theme_void() +
theme(legend.title = element_blank())Visualisasi diatas menunjukkan proporsi pengunaan sepeda antara hari kerja (Working Day) dan hari libur (Holiday) dalam bentuk diagram lingkaran. Proporsi penggunan sepeda pada hari kerja sebesar 0.684 atau 68.4%, sedangkan pada hari libur sebesar 0.316 atau 31.6%. Informasi tambahan ini dapat membantu lebih lanjut dalam perencanaan layanan sepeda berdasarkan jenis hari, seperti menambah jumlah sepeda yang tersedia selama hari kerja atau melakukan promosi khusus untuk meningkatkan penggunaan sepeda selama hari libur.
Visualisasi Distribusi Kondisi Cuaca
Kondisi cuaca adalah variabel kategorik lain dalam dataset bike sharing yang menunjukkan kondisi cuaca pada hari tertentu. Visualisasi distribusi kondisi cuaca dapat memberikan informasi tentang bagaimana penggunaan sepeda bervariasi berdasarkan kondisi cuaca.
# Hitung jumlah pengguna sepeda untuk setiap kategori kondisi cuaca
weather_counts <- bike_data %>%
group_by(weathersit) %>%
summarise(count = n())
# Visualisasi distribusi kondisi cuaca dengan nilai pada setiap bar
ggplot(weather_counts, aes(x = weathersit, y = count, fill = weathersit)) +
geom_bar(stat = "identity") +
scale_fill_manual(values = c("Clear" = "coral", "Cloudy" = "steelblue", "Light Rain" = "steelblue", "Heavy Rain" = "steelblue")) +
geom_text(aes(label = count), vjust = -0.5) +
labs(title = "Distribusi Kondisi Cuaca dalam Data Bike Sharing",
x = "Kondisi Cuaca",
y = "Jumlah Pengguna Sepeda") +
scale_y_continuous(expand = expansion(mult = c(0, 0.2))) +
theme_minimal() +
theme(legend.position = "none") Kondisi cuaca yang paling sering muncul dalam dataset adalah kondisi cerah (Clear) sebanyak 463 kali dalam setahun, diikuti oleh kondisi berawan (Cloudy) sebanyak 247 kali, kondisi hujan ringan (Light Rain) sebanyak 21 kali, dan kondisi hujan lebat atau badai (Heavy Rain) tidak terjadi. Informasi ini menjadi informasi tambahan bagi pengelola kota dalam merencanakan layanan sepeda berdasarkan kondisi cuaca, seperti menambah jumlah sepeda yang tersedia selama kondisi cuaca cerah atau melakukan promosi khusus untuk meningkatkan penggunaan sepeda selama kondisi cuaca berawan atau hujan ringan.
Visualisasi Hubungan antara Variabel Kategorik
Vsualisasi Distribusi Kondisi Cuaca berdasarkan Jenis Hari
Kondisi cuaca dapat mempengaruhi penggunaan sepeda, dan hubungan antara kondisi cuaca dan jenis hari (hari kerja atau hari libur) dapat memberikan informasi tambahan yang lebih dalam tentang pola penggunaan sepeda. Dengan menggunakan stacked bar chart, kita dapat melihat bagaimana distribusi kondisi cuaca berbeda antara hari kerja dan hari libur dalam satu grafik. Berikut adalah kode untuk membuat stacked bar chart yang menunjukkan distribusi kondisi cuaca berdasarkan jenis hari dalam dataset bike sharing:
# Visualisasi distribusi kondisi cuaca berdasarkan jenis hari menggunakan stacked bar chart
ggplot(bike_data, aes(x = weathersit, fill = workingday)) +
geom_bar(position = "stack") +
scale_fill_manual(values = c("Holiday" = "steelblue", "Working Day" = "coral"), name = "Hari Kerja") +
labs(title = "Distribusi Kondisi Cuaca berdasarkan Jenis Hari dalam Data Bike Sharing",
x = "Kondisi Cuaca",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Kondisi cuaca cerah (Clear) lebih sering terjadi pada hari kerja (Working Day) dibandingkan dengan hari libur (Holiday). Kondisi berawan (Cloudy) juga lebih sering terjadi pada hari kerja, begitu juga dengan kondisi hujan ringan (Light Rain) sering terjadi pada hari kerja. Dengan menggunakan menambahkan warna berdasarkan kategori hari kerja, kita dapat dengan mudah membedakan antara distribusi kondisi cuaca pada hari kerja dan hari libur, sehingga memberikan informasi yang lebih mendalam tentang pola penggunaan sepeda dalam berbagai kondisi cuaca.
Visualisasi Distribusi Musim berdasarkan Kondisi Cuaca
Sebelumnya, kita telah melihat visualiasi kondisi cuaca dengan jenis
hari, namun kita juga dapat melihat hubungan antara musim dengan kondisi
cuaca dengan menggunakan tabel kontigensi. Tabel kontingensi adalah
tabel yang digunakan untuk menunjukkan frekuensi atau jumlah pengguna
sepeda untuk kombinasi dari dua atau lebih variabel kategorik. Tabel ini
membantu dalam memahami hubungan antara variabel-variabel tersebut.
Dalam konteks dataset bike sharing, kita dapat membuat tabel kontingensi
untuk melihat hubungan antara musim (season) dan kondisi
cuaca (weathersit). Berikut adalah kode untuk membuat tabel
kontingensi menggunakan fungsi table() di R:
# Membuat tabel kontingensi antara musim dan kondisi cuaca
contingency_table <- table(bike_data$weathersit, bike_data$season)
print(contingency_table)##
## Spring Summer Fall Winter
## Clear 111 113 136 103
## Cloudy 66 68 48 65
## Light Rain 4 3 4 10
## Heavy Rain 0 0 0 0
Memvisualiasikan tabel kontingensi dapat memberikan gambaran yang lebih jelas tentang bagaimana distribusi kondisi cuaca berbeda di setiap musim. Salah satu cara untuk memvisualisasikan tabel kontingensi adalah dengan menggunakan grouped bar chart. Berikut adalah kode untuk membuat grouped bar chart yang menunjukkan distribusi musim berdasarkan kondisi cuaca dalam dataset bike sharing:
# Visualisasi distribusi musim berdasarkan kondisi cuaca menggunakan grouped bar chart
ggplot(bike_data, aes(x = season, fill = weathersit)) +
geom_bar(position = "dodge") +
scale_fill_manual(values = c( "Clear" = "#A7D3F2", "Cloudy" = "#B8C0C7", "Light Rain" = "#6F9AC4", "Heavy Rain" = "#2F5D7E" ), name = "Kondisi Cuaca") +
labs(title = "Distribusi Musim berdasarkan Kondisi Cuaca dalam Data Bike Sharing",
x = "Kondisi Cuaca",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Visualisasi di atas menunjukkan distribusi musim berdasarkan kondisi cuaca dengan menggunakan grouped bar chart. Setiap kelompok bar mewakili musim yang berbeda, dan warna yang berbeda menunjukkan kondisi cuaca yang berbeda. Pada kondisi cuaca cerah (Clear) pada musim gugur (Fall) memiliki jumlah pengguna sepeda tertinggi, sedangkan pada kondisi berawan (Cloudy) disetiap musim pengguna sepeda memliki distribusi yang lebih merata, sedangkan kondisi cuaca hujan ringan (heavy rain) jumlah pengguna sepeda lebih banyak pada musim dingin (Winter) dibandingkan dengan musim lainnya. Dengan menggunakan grouped bar chart, kita dapat dengan mudah membandingkan distribusi musim di setiap kondisi cuaca, sehingga memberikan informasi yang lebih mendalam tentang pola penggunaan sepeda dalam berbagai situasi.
Selain menggunakan grouped bar chart, kita juga dapat menggunakan stacked bar chart untuk memvisualisasikan hubungan antara musim dan kondisi cuaca. Stacked bar chart menunjukkan jumlah total untuk setiap kategori pada sumbu x, dengan bagian yang berbeda dalam setiap bar mewakili jumlah dari kategori lain. Berikut adalah kode untuk membuat stacked bar chart yang menunjukkan hubungan antara musim dan kondisi cuaca dalam dataset bike sharing:
# Visualisasi hubungan antara musim dan kondisi cuaca menggunakan stacked bar chart
ggplot(bike_data, aes(x = season, fill = weathersit)) +
geom_bar(position = "stack") +
scale_fill_manual(values = c( "Clear" = "#A7D3F2", "Cloudy" = "#B8C0C7", "Light Rain" = "#6F9AC4", "Heavy Rain" = "#2F5D7E" ), name = "Kondisi Cuaca") +
labs(title = "Hubungan antara Musim dan Kondisi Cuaca dalam Data Bike Sharing",
x = "Musim",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Visualisasi di atas menunjukkan hubungan antara musim dan kondisi cuaca dengan menggunakan stacked bar chart. Setiap bar mewakili musim yang berbeda, dan bagian yang berbeda dalam setiap bar mewakili jumlah pengguna sepeda untuk setiap kondisi cuaca. Pada kondisi cuaca cerah (Clear) pada musim gugur (Fall) memiliki jumlah pengguna sepeda tertinggi, sedangkan pada kondisi berawan (Cloudy) disetiap musim pengguna sepeda memliki distribusi yang lebih merata, sedangkan kondisi cuaca hujan ringan (heavy rain) jumlah pengguna sepeda lebih banyak pada musim dingin (Winter) dibandingkan dengan musim lainnya. Dengan menggunakan stacked bar chart, kita dapat dengan mudah melihat proporsi pengguna sepeda untuk setiap kondisi cuaca di setiap musim, sehingga memberikan informasi yang lebih mendalam tentang pola penggunaan sepeda dalam berbagai situasi.
Selain menggunakan grouped bar chart dan stacked bar chart, kita juga dapat menggunakan mosaic plot. Mosaic plot adalah jenis visualisasi yang menunjukkan proporsi dari setiap kategori dalam kombinasi dua variabel kategorik. Berikut adalah kode untuk membuat mosaic plot yang menunjukkan hubungan antara musim dan kondisi cuaca dalam dataset bike sharing:
# Visualisasi hubungan antara musim dan kondisi cuaca menggunakan mosaic plot
ggplot(bike_data, aes(x = season, fill = weathersit)) +
geom_bar(position = "fill") +
scale_fill_manual(values = c( "Clear" = "#A7D3F2", "Cloudy" = "#B8C0C7", "Light Rain" = "#6F9AC4", "Heavy Rain" = "#2F5D7E" ), name = "Kondisi Cuaca") +
labs(title = "Hubungan antara Musim dan Kondisi Cuaca dalam Data Bike Sharing",
x = "Musim",
y = "Proporsi Pengguna Sepeda") +
theme_minimal()Pada musim semi (Spring) dan musim panas (Summer) memiliki proporsi pengguna sepeda relatif mirip untuk setiap kondisi cuaca. Pada musim gugur (Fall) memiliki proporsi pengguna sepeda paling banyak pada kondisi cuaca cerah (Clear), dan menjadi proposi pengguna sepeda tertinggi untuk setiap musim. Hal menarik lainnya, pada musim dingin (Winter) memiliki proporsi pengguna sepeda paling banyak pada kondisi cuaca hujan ringan (Light Rain), meskipun proporsi pengguna sepeda pada kondisi cuaca hujan ringan (Light Rain) lebih sedikit dibandingkan dengan kondisi cuaca cerah (Clear) dan berawan (Cloudy).
Visualisasi Distribusi Jenis Hari berdasarkan Musim
Selain melihat distribusi kondisi cuaca berdasarkan musim, kita juga dapat melihat distribusi jenis hari (hari kerja atau hari libur) berdasarkan musim. Dengan menggunakan grouped bar chart, kita dapat melihat bagaimana distribusi jenis hari berbeda di setiap musim dalam satu grafik. Berikut adalah kode untuk membuat grouped bar chart yang menunjukkan distribusi jenis hari berdasarkan musim dalam dataset bike sharing:
# Visualisasi distribusi jenis hari berdasarkan musim menggunakan grouped bar chart
ggplot(bike_data, aes(x = season, fill = workingday)) +
geom_bar(position = "dodge") +
scale_fill_manual(values = c("Holiday" = "steelblue", "Working Day" = "coral"), name = "Jenis Hari") +
labs(title = "Distribusi Jenis Hari berdasarkan Musim dalam Data Bike Sharing",
x = "Musim",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()Visualisasi di atas menunjukkan distribusi jenis hari berdasarkan musim dengan menggunakan grouped bar chart. Setiap kelompok bar mewakili musim yang berbeda, dan warna yang berbeda menunjukkan jenis hari yang berbeda. Pada musim semi (Spring) dan musim panas (Summer) memiliki distribusi jenis hari yang relatif mirip, dengan jumlah pengguna sepeda lebih banyak pada hari kerja (Working Day) dibandingkan dengan hari libur (Holiday). Pada musim gugur (Fall) memiliki jumlah pengguna sepeda tertinggi pada hari kerja (Working Day), sedangkan pada musim dingin (Winter) memiliki jumlah pengguna sepeda tertinggi pada hari libur (Holiday). Dengan menggunakan grouped bar chart, kita dapat dengan mudah membandingkan distribusi jenis hari di setiap musim, sehingga memberikan informasi yang lebih mendalam tentang pola penggunaan sepeda dalam berbagai situasi.
Selain menggunakan grouped bar chart, kita juga dapat menggunakan stacked bar chart untuk memvisualisasikan hubungan antara jenis hari dan musim. Stacked bar chart menunjukkan jumlah total untuk setiap kategori pada sumbu x, dengan bagian yang berbeda dalam setiap bar mewakili jumlah dari kategori lain. Berikut adalah kode untuk membuat stacked bar chart yang menunjukkan hubungan antara jenis hari dan musim dalam dataset bike sharing:
# Visualisasi hubungan antara jenis hari dan musim menggunakan stacked bar chart
ggplot(bike_data, aes(x = season, fill = workingday)) +
geom_bar(position = "stack") +
scale_fill_manual(values = c("Holiday" = "steelblue", "Working Day" = "coral"), name = "Jenis Hari") +
labs(title = "Hubungan antara Jenis Hari dan Musim dalam Data Bike Sharing",
x = "Musim",
y = "Jumlah Pengguna Sepeda") +
theme_minimal()
Visualisasi di atas menunjukkan hubungan antara jenis hari dan musim
dengan menggunakan stacked bar chart. Setiap bar mewakili musim yang
berbeda, dan bagian yang berbeda dalam setiap bar mewakili jumlah
pengguna sepeda untuk setiap jenis hari. Pada musim semi (Spring) dan
musim panas (Summer) memiliki distribusi jenis hari yang relatif mirip,
dengan jumlah pengguna sepeda lebih banyak pada hari kerja (Working Day)
dibandingkan dengan hari libur (Holiday). Pada musim gugur (Fall)
memiliki jumlah pengguna sepeda tertinggi pada hari kerja (Working Day),
sedangkan pada musim dingin (Winter) memiliki jumlah pengguna sepeda
tertinggi pada hari libur (Holiday). Dengan menggunakan stacked bar
chart, kita dapat dengan mudah melihat proporsi pengguna sepeda untuk
setiap jenis hari di setiap musim, sehingga memberikan informasi yang
lebih mendalam tentang pola penggunaan sepeda dalam berbagai
situasi.
Kesimpulan
Berdasarkan visualiasi data kategorik atau diskrit yang telah dilakukan, kita dapat menyimpulkan bahwa:
- Musim gugur (Fall) memiliki jumlah pengguna sepeda tertinggi pada kondisi cuaca cerah (Clear), dan menjadi proposi pengguna sepeda tertinggi untuk setiap musim. Hal ini menunjukkan bahwa musim gugur mungkin merupakan musim yang paling populer untuk penggunaan sepeda, terutama ketika cuaca cerah.
- Pada musim dingin (Winter) memiliki proporsi pengguna sepeda paling banyak pada kondisi cuaca hujan ringan (Light Rain), meskipun proporsi pengguna sepeda pada kondisi cuaca hujan ringan (Light Rain) lebih sedikit dibandingkan dengan kondisi cuaca cerah (Clear) dan berawan (Cloudy). Hal ini menunjukkan bahwa meskipun kondisi cuaca hujan ringan mungkin tidak ideal untuk penggunaan sepeda, masih ada sejumlah pengguna yang tetap menggunakan sepeda selama musim dingin, terutama ketika cuaca tidak terlalu buruk.
- Sebagian besar penggunaan sepeda terjadi pada hari kerja (Working Day), yang ditandai dengan warna coral. Sementara itu, sebagian kecil berasal dari hari libur (Holiday), yang ditandai dengan warna steelblue. Hal ini menunjukkan bahwa permintaan sepeda mungkin lebih tinggi pada hari kerja dibandingkan dengan hari libur, yang dapat memberikan informasi awal tentang pola penggunaan sepeda dalam dataset. Informasi ini dapat membantu pengelola kota dalam merencanakan layanan sepeda berdasarkan jenis hari, seperti menambah jumlah sepeda yang tersedia selama hari kerja atau melakukan promosi khusus untuk meningkatkan penggunaan sepeda selama hari libur.
Dengan demikian, visualisasi data kategorik atau diskrit memberikan wawasan yang lebih dalam tentang pola penggunaan sepeda berdasarkan musim, kondisi cuaca, dan jenis hari. Informasi ini dapat digunakan oleh pengelola kota untuk merencanakan layanan sepeda yang lebih efektif dan sesuai dengan kebutuhan pengguna sepeda dalam berbagai situasi.