Membuat Visualisasi Data Klasik dengan library(txtplot) di R
Di berbagai tulisan di blog ini, saya telah memberikan gambaran
bagaimana visualisasi data bisa dilakukan di R menggunakan
library(ggplot2)
. Sebenarnya ggplot2
bukanlah satu-satunya library
yang bisa digunakan untuk melakukan visualisasi data. Kita bisa
menggunakan base
dari R untuk melakukan plot()
terhadap data
atau plotly
untuk membuat visualisasi dinamis.
Namun demikian, ada satu library visualisasi data yang menarik bagi saya. Saya telah menggunakannya beberapa kali pada R versi command line interface di tablet Huawei karena library ini bersifat klasik atau retro.
Alih-alih visualisasi modern, tapi library ini menggunakan teks sebagai alat membentuk grafik.
Bayangkan kalian membuat grafik dengan notepad. Nah, seperti itu kira-kira gambarannya.
Apa saja grafik yang bisa dibuat? Bagaimana caranya? Cekidot.
Data yang Digunakan Sebagai Contoh
Pada tulisan ini, saya akan gunakan data kasus Covid-19 yang saya scrape dari situs worldometers. Saya hanya akan gunakan data 20 negara teratas saja.
number | country_other | total_cases | total_recovered |
---|---|---|---|
1 | China | 226035 | 220199 |
2 | USA | 89862019 | 85410289 |
3 | India | 43547809 | 42907327 |
4 | Brazil | 32610830 | 31039055 |
5 | France | 31658727 | 29826046 |
6 | Germany | 28673212 | 26978400 |
7 | UK | 22855499 | 22203099 |
8 | Italy | 18941002 | 17682801 |
9 | Russia | 18445301 | 17873576 |
10 | S. Korea | 18413997 | 18239069 |
11 | Turkey | 15180444 | 15035727 |
12 | Spain | 12890002 | 12294986 |
13 | Vietnam | 10750314 | 9724922 |
14 | Japan | 9418900 | 9195323 |
15 | Argentina | 9394326 | 9184344 |
16 | Australia | 8291345 | 8012561 |
17 | Netherlands | 8210648 | 8070532 |
18 | Iran | 7241648 | 7063652 |
19 | Colombia | 6175181 | 5984546 |
20 | Indonesia | 6097928 | 5923808 |
Scatterplot
Pertama-tama saya akan buat scatterplot dari total_cases
dan
total_recovered
. Caranya cukup mudah:
# memanggil library
library(txtplot)
txtplot(df$total_cases, # sumbu x
df$total_recovered, # sumbu y
xlab = "Cases", # memberikan label x axis
ylab = "Recovered" # memberikan label y axis
)
## +-+----------+----------+---------+----------+---------+
## 8e+07 + * +
## | |
## R | |
## e 6e+07 + +
## c | |
## o | |
## v 4e+07 + * +
## e | ** |
## r | * * |
## e 2e+07 + * * +
## d | **** |
## 0 + * * +
## +-+----------+----------+---------+----------+---------+
## 0 2e+07 4e+07 6e+07 8e+07
## Cases
Density plot
Berikutnya saya akan membuat density plot dari data total_cases
.
txtdensity(df$total_cases)
## +-+----------+-----------+----------+----------+---------+
## | ***** |
## 3e-08 + * ** +
## | ** ** |
## | ** ** |
## | * ** |
## 2e-08 + ** ** +
## | * *** |
## | ** *** |
## | *** |
## 1e-08 + *** +
## | **** |
## | ***** *** |
## 0 + ********************* +
## +-+----------+-----------+----------+----------+---------+
## 0 2e+07 4e+07 6e+07 8e+07
Boxplot
Berikutnya saya akan membuat boxplot dari data total_cases
dan
total_recovered
.
txtboxplot(df$total_recovered,
df$total_cases)
## 0 1e+07 2e+07 3e+07 4e+07
## |--+------------+-----------+-----------+------------+--------|
## +------+-------------+
## 1 ----------| | |-----------------------
## +------+-------------+
## +-------+-------------+
## 2 ----------| | |----------------------
## +-------+-------------+
## Legend: 1=df$total_recovered, 2=df$total_cases
Barchart
txtplot
juga bisa digunakan untuk membuat barchart. Namun untuk itu,
input dari function ini harus berupa vector bertipe factor.
Misalkan saya hendak membuat barchart dari total_recovered
berikut:
# dalam ratusan ribu
tr = round(df$total_recovered / 100000,
0)
# membuat dalam bentuk factor
bar = rep(df$country_other,tr) %>% factor()
# membuat plot
txtbarchart(bar,
ylab = "Recovered")
## +-------------+-------------+------------+-------------+--+
## | * |
## 20 + * +
## R | * |
## e 15 + * +
## c | * |
## o | * * |
## v 10 + * * +
## e | * * * * |
## r | * * * * * * |
## e 5 + * * * * * * * * * * +
## d | * * * * * * * * * * * * * * * * * |
## 0 + * * * * * * * * * * * * * * * * * * * * +
## +-------------+-------------+------------+-------------+--+
## 5 10 15 20
## Legend:
## 1=Argentina, 2=Australia, 3=Brazil, 4=China, 5=Colombia, 6=Franc
## e, 7=Germany, 8=India, 9=Indonesia, 10=Iran, 11=Italy, 12=Japan,
## 13=Netherlands, 14=Russia, 15=S. Korea, 16=Spain, 17=Turkey, 18
## =UK, 19=USA, 20=Vietnam
Bagaimana? Mudah kan?