Package visualisasi secara umum dan terkenal sih menggunakan ggplot, namun ada sedikit hal yang menurut saya agak aneh, yaitu untuk menyajikan sebuah 2 plot line (seringnya saya lihat tutorial yang ada di internet) menyajikan format tabel berikut (minimal terdiri dari 3 kolom)
Kalau kita menyajikan tabel seperti diatas, maka sangat mudah menampilkan 2 plot line
library(dplyr) library(openxlsx) library(ggplot2) dat1 = read.xlsx('C:\\Users\\mulka\\Desktop\\Mengubah Legend\\dat1.xlsx') p = ggplot(data = dat1)+ geom_line(aes(x=no,y = tinggi, colour = jenis_kelamin)) print(p)
Padahal tidak semuanya bisa disajikan seperti itu, misalkan seperti ini
Agar bisa menyajikan visualisasi diatas, maka agak sedikit repot
dat2 = read.xlsx('C:\\Users\\mulka\\Desktop\\Mengubah Legend\\dat2.xlsx') p = ggplot(data = dat2, aes(x = no)) + geom_line(aes(y = tinggi_perempuan, colour = "Laki-Laki")) + geom_line(aes(y = tinggi_laki_laki, colour = "Perempuan")) + scale_colour_manual("", breaks = c("Laki-Laki", "Perempuan"), values = c("red", "blue")) print(p)
Atau kalian punya informasi yang lain? Saya sering menggunakan line plot untuk membandingkan antar data target dan prediksi sehingga seringkali menggunakan format tabel seperti no 2!
Cara kedua menggunakan function melt()
Ini cara kedua yang saya gunakan saat ini yaitu menggunakan function melt() disini. Misalkan saya punya dataset berikut
> head(dat) TANGGAL TAHUN_2020 TAHUN_2021 1 1 10 80 2 2 20 90 3 3 45 34 4 4 68 90 5 5 30 34 6 6 50 90 7 7 10 91 8 8 90 80 9 9 100 80 10 10 120 90
Kita panggil saja melt()
dat_final = reshape2::melt(dat, id.var='TANGGAL')
Kita cek hasilnya
head(dat_final,20)
kan jadi bertambah 20 baris
> head(dat_final,20) TANGGAL variable value 1 1 TAHUN_2020 10 2 2 TAHUN_2020 20 3 3 TAHUN_2020 45 4 4 TAHUN_2020 68 5 5 TAHUN_2020 30 6 6 TAHUN_2020 50 7 7 TAHUN_2020 10 8 8 TAHUN_2020 90 9 9 TAHUN_2020 100 10 10 TAHUN_2020 120 11 1 TAHUN_2021 80 12 2 TAHUN_2021 90 13 3 TAHUN_2021 34 14 4 TAHUN_2021 90 15 5 TAHUN_2021 34 16 6 TAHUN_2021 90 17 7 TAHUN_2021 91 18 8 TAHUN_2021 80 19 9 TAHUN_2021 80 20 10 TAHUN_2021 90
Kita panggil ggplot2 dengan paramater yang lebih lengkap
ggplot(dat_final, aes(x=TANGGAL, y=value, col=variable)) + geom_line()+ scale_color_manual(values = c("darkred", "steelblue"))+ labs(ylab= "TANGGAL", title = 'LAPORAN NILAI PER TAHUN', subtitle = 'tahun 2020 dan 2021', caption = "sumber: Bagian Akademik", base_size = 12)
Jadi lebih baik overlay
Paket ribet dengan dplyr
Kalau mau ribet, ya bisa saja biar agak panjang yuk mari
t_2020 = dat %>% select(TAHUN_2020,TANGGAL) %>% mutate(TAHUN=2020) %>% rename(NILAI=TAHUN_2020) print(t_2020) t_2021 = dat %>% select(TAHUN_2021,TANGGAL) %>% mutate(TAHUN=2021) %>% rename(NILAI=TAHUN_2021) print(t_2021) ujian = rbind(t_2020,t_2021) ujian$TAHUN = as.factor(ujian$TAHUN) #JANGAN LUPA UNTUK DIJADIKAN FAKTOR # Visualization ggplot(ujian, aes(x = TANGGAL, y = NILAI)) + geom_line(aes(color = TAHUN, linetype = TAHUN)) + scale_color_manual(values = c("darkred", "steelblue"))+ labs(ylab= "TANGGAL", title = 'LAPORAN NILAI PER TAHUN', subtitle = 'tahun 2020 dan 2021', caption = "sumber: Bagian Akademik", base_size = 12)