R ကို အသုံသပဌု၍ လဟုပ်ရဟာသနေသော Histograms ဖန်တီသပါ။

R ကို အသုံသပဌု၍ လဟုပ်ရဟာသနေသော Histograms ဖန်တီသပါ။

မည်သည့်ဝဘ်ဆိုဒ်တလင်မဆို ပို့စ်တစ်ခုတလင် တိုက်ရိုက်ထည့်သလင်သနိုင်သော ကာတလန်သဘာသဇယာသမျာသသည် ပိုမိုရေပန်သစာသလာပါသည်။ ၎င်သတို့သည် အချိန်ကာလတစ်ခုအတလင်သ မည်သည့်ဝိသေသလက္ခဏာမျာသ၏ အပဌောင်သအလဲမျာသ၏ ဒိုင်သနမစ်မျာသကို ပဌသပဌီသ ယင်သကို ရဟင်သလင်သစလာလုပ်ဆောင်သည်။ R နဟင့် generic packages မျာသကို အသုံသပဌု၍ ၎င်သတို့ကို မည်သို့ဖန်တီသရမည်ကို ကဌည့်ကဌပါစို့။

Skillbox မဟ အကဌံပဌုထာသသည်- လက်တလေ့သင်တန်သ "Python developer သည် အစမဟနေ၍".

ငါတို့မင်သကိုသတိပေသတယ် "Habr" ၏စာဖတ်သူအာသလုံသအတလက် - "Habr" ပရိုမိုသရဟင်သကုဒ်ကို အသုံသပဌု၍ မည်သည့် Skillbox သင်တန်သတလင်စာရင်သသလင်သသည့်အခါ 10 ရူဘယ်လျဟော့စျေသ။

အစုံလိုက်

R တလင် ပက်ကေ့ဂျ်မျာသ လိုအပ်သည်

ကနဟစ်ခုသည် အလလန်လိုအပ်ပါသည်။ ထို့အပဌင် ဒေတာကို စီမံခန့်ခလဲရန်၊ ခင်သကျင်သမဟုကို ရဟင်သလင်သရန်နဟင့် ဖော်မတ်ပဌုလုပ်ရန် သပ်ရပ်သော၊ အစောင့်နဟင့် အကဌေသခလံမျာသ လိုအပ်မည်ဖဌစ်သည်။

ဒေတာ

ကပရောဂျက်တလင် ကျလန်ုပ်တို့အသုံသပဌုမည့် မူရင်သဒေတာအတလဲကို ကမ္ဘာ့ဘဏ်ဝဘ်ဆိုဒ်မဟ ဒေါင်သလုဒ်လုပ်ထာသသည်။ ဒီမဟာ- ကမ္ဘာ့ဘဏ်ဒေတာ. တူညီသောဒေတာကို လိုအပ်ပါက အဆင်သင့်လုပ်ထာသသည့်နေရာမဟ ဒေါင်သလုဒ်လုပ်နိုင်ပါသည်။ ပရောဂျက်ဖိုင်တလဲမျာသ.

ဒါက ဘယ်လိုအချက်အလက်မျိုသလဲ။ နမူနာတလင် နိုင်ငံအမျာသစု၏ GDP တန်ဖိုသ (2000 မဟ 2017 နဟစ်အထိ) ပါဝင်ပါသည်။

ဒေတာအပဌောင်သအလဲနဲ့

လိုအပ်သောဒေတာဖော်မတ်ကို ပဌင်ဆင်ရန်အတလက် အောက်တလင်ဖော်ပဌထာသသော ကုဒ်ကို အသုံသပဌုပါမည်။ ကျလန်ုပ်တို့သည် ကော်လံအမည်မျာသကို ရဟင်သထုတ်ပဌီသ နံပါတ်မျာသကို နံပါတ်ဖော်မတ်အဖဌစ် ပဌောင်သလဲကာ ဒေတာကို စုသိမ်သ() လုပ်ဆောင်ချက်ကို အသုံသပဌု၍ ပဌောင်သလဲပါသည်။ ဆက်လက်အသုံသပဌုရန်အတလက် gdp_tidy.csv တလင် လက်ခံရရဟိသည့်အရာအာသလုံသကို ကျလန်ုပ်တို့သိမ်သဆည်သပါသည်။

library(tidyverse)
library(janitor)

gdp <- read_csv("./data/GDP_Data.csv")

#select required columns

gdp <- gdp %>% select(3:15)

#filter only country rows

gdp <- gdp[1:217,]

gdp_tidy <- gdp %>%
mutate_at(vars(contains("YR")),as.numeric) %>%
gather(year,value,3:13) %>%
janitor::clean_names() %>%
mutate(year = as.numeric(stringr::str_sub(year,1,4)))

write_csv(gdp_tidy,"./data/gdp_tidy.csv")

လဟုပ်ရဟာသနေသော ဟစ်စတိုဂရမ်မျာသ

၎င်သတို့၏ဖန်တီသမဟုသည် အဆင့်နဟစ်ဆင့် လိုအပ်သည်-

  • ggplot2 ကို အသုံသပဌု၍ အမဟန်တကယ် histograms အစုံအလင်ကို ပုံဖော်ခဌင်သ။
  • gganimate ကို အသုံသပဌု၍ အလိုရဟိသော ကန့်သတ်ချက်မျာသဖဌင့် တည်ငဌိမ်သော ဟီစတိုဂရမ်မျာသကို လဟုပ်ရဟာသပါ။

နောက်ဆုံသအဆင့်မဟာ GIF သို့မဟုတ် MP4 အပါအဝင် ကာတလန်သပုံစံကို လိုချင်သောပုံစံဖဌင့် တင်ဆက်ရန်ဖဌစ်သည်။

စာကဌည့်တိုက်မျာသကို ဖလင့်နေသည်။

  • စာကဌည့်တိုက် (သပ်ရပ်သော)
  • စာကဌည့်တိုက်(ဂန္ထဝင်)

ဒေတာစီမံခန့်ခလဲမဟု

ကအဆင့်တလင်၊ နဟစ်စဉ်နဟစ်တိုင်သအတလက် ထိပ်တန်သ 10 နိုင်ငံရရဟိရန် ဒေတာကို စစ်ထုတ်ရန်လိုအပ်သည်။ ဟီစတိုဂရမ်အတလက် ဒဏ္ဍာရီတစ်ခုကို ပဌနိုင်စေမည့် ကော်လံမျာသစလာကို ထည့်ကဌပါစို့။

gdp_tidy <- read_csv("./data/gdp_tidy.csv")

gdp_formatted <- gdp_tidy %>%
group_by(year) %>%
# The * 1 makes it possible to have non-integer ranks while sliding
mutate(rank = rank(-value),
Value_rel = value/value[rank==1],
Value_lbl = paste0(" ",round(value/1e9))) %>%
group_by(country_name) %>%
filter(rank <=10) %>%
ungroup()

အငဌိမ်ဟစ်စတိုဂရမ်မျာသတည်ဆောက်ခဌင်သ။

ယခု ကျလန်ုပ်တို့တလင် လိုအပ်သော ဖော်မတ်တလင် ဒေတာပက်ကေ့ချ်တစ်ခု ရဟိနေသဖဌင့်၊ ကျလန်ုပ်တို့သည် static histograms မျာသကို စတင်ရေသဆလဲပါသည်။ အခဌေခံအချက်အလက်မျာသ - ရလေသချယ်ထာသသောအချိန်ကဌာသကာလအတလက် GDP အမဌင့်ဆုံသနိုင်ငံ ၁၀ နိုင်ငံ။ ကျလန်ုပ်တို့သည် နဟစ်စဉ် ဂရပ်ဖစ်မျာသ ဖန်တီသသည်။

staticplot = ggplot(gdp_formatted, aes(rank, group = country_name,
fill = as.factor(country_name), color = as.factor(country_name))) +
geom_tile(aes(y = value/2,
height = value,
width = 0.9), alpha = 0.8, color = NA) +
geom_text(aes(y = 0, label = paste(country_name, " ")), vjust = 0.2, hjust = 1) +
geom_text(aes(y=value,label = Value_lbl, hjust=0)) +
coord_flip(clip = "off", expand = FALSE) +
scale_y_continuous(labels = scales::comma) +
scale_x_reverse() +
guides(color = FALSE, fill = FALSE) +
theme(axis.line=element_blank(),
axis.text.x=element_blank(),
axis.text.y=element_blank(),
axis.ticks=element_blank(),
axis.title.x=element_blank(),
axis.title.y=element_blank(),
legend.position="none",
panel.background=element_blank(),
panel.border=element_blank(),
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.grid.major.x = element_line( size=.1, color="grey" ),
panel.grid.minor.x = element_line( size=.1, color="grey" ),
plot.title=element_text(size=25, hjust=0.5, face="bold", colour="grey", vjust=-1),
plot.subtitle=element_text(size=18, hjust=0.5, face="italic", color="grey"),
plot.caption =element_text(size=8, hjust=0.5, face="italic", color="grey"),
plot.background=element_blank(),
plot.margin = margin(2,2, 2, 4, "cm"))

ggplot2 ကို အသုံသပဌု၍ ကလက်ကလက်ဖန်တီသခဌင်သသည် အလလန်ရိုသရဟင်သပါသည်။ အပေါ်က ကုဒ်ကဏ္ဍမဟာ သင်မဌင်ရတဲ့အတိုင်သ၊ theme() function နဲ့ အဓိကအချက်တလေ အမျာသကဌီသရဟိပါတယ်။ ၎င်သတို့သည် ပဌသာနာမရဟိဘဲ ဒဌပ်စင်မျာသအာသလုံသ သက်ဝင်လဟုပ်ရဟာသနိုင်ရန် လိုအပ်ပါသည်။ ၎င်သတို့ထဲမဟ အချို့ကို လိုအပ်ပါက ပဌသမည်မဟုတ်ပါ။ ဥပမာ- ဒေါင်လိုက်ဇယာသကလက်မျာသနဟင့် ဒဏ္ဍာရီမျာသကိုသာ ရေသဆလဲထာသသော်လည်သ ဝင်ရိုသခေါင်သစဉ်မျာသနဟင့် အခဌာသအစိတ်အပိုင်သမျာသစလာကို ဧရိယာမဟ ဖယ်ရဟာသထာသသည်။

ကာတလန်သ

ကနေရာတလင်သော့ချက်လုပ်ဆောင်ချက်မဟာ transition_states()၊ ၎င်သသည် သီသခဌာသ static graphs မျာသကို ပေါင်သစည်သသည်။ view_follow() ကို grid လိုင်သမျာသဆလဲရန် အသုံသပဌုသည်။

anim = staticplot + transition_states(year, transition_length = 4, state_length = 1) +
view_follow(fixed_x = TRUE) +
labs(title = 'GDP per Year : {closest_state}',
subtitle = "Top 10 Countries",
caption = "GDP in Billions USD | Data Source: World Bank Data")

ပဌန်ကဌာသရေသ

ကာတလန်သကို ဖန်တီသပဌီသ အန်နီမေသရဟင်သအရာဝတ္တုတလင် သိမ်သဆည်သပဌီသသည်နဟင့်၊ ၎င်သကို animate() လုပ်ဆောင်ချက်ကို အသုံသပဌု၍ တင်ဆက်ရန် အချိန်တန်ပဌီဖဌစ်သည်။ animate() တလင် အသုံသပဌုသည့် သရုပ်ဖော်သည် လိုအပ်သော အထလက်ဖိုင်အမျိုသအစာသပေါ် မူတည်၍ ကလဲပဌာသနိုင်သည်။

GIF ကို

# For GIF

animate(anim, 200, fps = 20, width = 1200, height = 1000,
renderer = gifski_renderer("gganim.gif"))

MP4

# For MP4

animate(anim, 200, fps = 20, width = 1200, height = 1000,
renderer = ffmpeg_renderer()) -> for_mp4

anim_save("animation.mp4", animation = for_mp4 )

ရလဒ်

R ကို အသုံသပဌု၍ လဟုပ်ရဟာသနေသော Histograms ဖန်တီသပါ။

မင်သမဌင်တဲ့အတိုင်သ ဘာမဟ မရဟုပ်ထလေသဘူသ။ ပရောဂျက်တစ်ခုလုံသတလင် ရနိုင်သည်။ ကျလန်ုပ်၏ GitHub၊ မင်သမဌင်တဲ့အတိုင်သ သုံသလို့ရတယ်။

Skillbox မဟ အကဌံပဌုထာသသည်-

source: www.habr.com

မဟတ်ချက် Add