เดเดคเต เดตเตเดฌเตโเดธเตเดฑเตเดฑเดฟเดฒเตเดฏเตเด เดเดฐเต เดชเตเดธเตเดฑเตเดฑเดฟเดฒเตเดเตเดเต เดจเตเดฐเดฟเดเตเดเต เดเตพเดเตเดเตเตผเดเตเดเดพเดตเตเดจเตเดจ เดเดจเดฟเดฎเตเดฑเตเดฑเดกเต เดฌเดพเตผ เดเดพเตผเดเตเดเตเดเตพ เดเตเดเตเดคเตฝ เดเดจเดชเตเดฐเดฟเดฏเดฎเดพเดฏเดฟเดเตเดเตเดฃเตเดเดฟเดฐเดฟเดเตเดเตเดเดฏเดพเดฃเต. เด
เดตเตผ เดเดฐเต เดจเดฟเดถเตเดเดฟเดค เดธเดฎเดฏเดคเตเดคเดฟเดจเตเดณเตเดณเดฟเตฝ เดเดคเตเดเตเดเดฟเดฒเตเด เดธเตเดตเดญเดพเดตเดธเดตเดฟเดถเตเดทเดคเดเดณเดฟเดฒเต เดฎเดพเดฑเตเดฑเดเตเดเดณเตเดเต เดเดฒเดจเดพเดคเตเดฎเดเดค เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเตเดเดฏเตเด เดเดคเต เดตเตเดฏเดเตเดคเดฎเดพเดฏเดฟ เดเตเดฏเตเดฏเตเดเดฏเตเด เดเตเดฏเตเดฏเตเดจเตเดจเต. เดเตผ, เดเดจเดฑเดฟเดเต เดชเดพเดเตเดเตเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เด
เดต เดเดเตเดเดจเต เดธเตเดทเตเดเดฟเดเตเดเดพเดฎเตเดจเตเดจเต เดจเตเดเตเดเดพเด.
เดธเตเดเดฟเตฝเดฌเตเดเตเดธเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต: เดชเตเดฐเดพเดฏเตเดเดฟเด เดเตเดดเตเดธเต
"เดเดฆเตเดฏเด เดฎเตเดคเตฝ เดชเตเดคเตเดคเตบ เดกเตเดตเดฒเดชเตเดชเตผ" .เดเดเตเดเตพ เดเตผเดฎเตเดฎเดฟเดชเตเดชเดฟเดเตเดเตเดจเตเดจเต: "Habr"-เดจเตเดฑเต เดเดฒเตเดฒเดพ เดตเดพเดฏเดจเดเตเดเดพเตผเดเตเดเตเด - "Habr" เดชเตเดฐเตเดฎเตเดทเดฃเตฝ เดเตเดกเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดคเตเดเตเดเดฟเดฒเตเด เดธเตเดเดฟเตฝเดฌเตเดเตเดธเต เดเตเดดเตเดธเดฟเตฝ เดเตเดฐเตเดฎเตเดชเตเตพ 10 เดฑเตเดฌเดฟเตพเดธเต เดเดฟเดดเดฟเดตเต.
เดชเดพเดเตเดเตเดเตเดเตพ
เดเดเตเดเตพเดเตเดเต R-เตฝ เดชเดพเดเตเดเตเดเตเดเตพ เดเดตเดถเตเดฏเดฎเดพเดฃเต:
- ggplot2
-
เดเดพเดจเดฟเดฎเตเดฑเตเดฑเต
เดเดต เดฐเดฃเตเดเตเด เดตเดณเดฐเต เด เดคเตเดฏเดพเดตเดถเตเดฏเดฎเดพเดฃเต. เดเตเดเดพเดคเต, เดกเดพเดฑเตเดฑ เดเตเดเดพเดฐเตเดฏเด เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เด เดฑเต เดตเตเดคเตเดคเดฟเดฏเดพเดเตเดเตเดจเตเดจเดคเดฟเดจเตเด เด เดคเดฟเดจเดจเตเดธเดฐเดฟเดเตเดเต เดซเตเตผเดฎเดพเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเตเด เดเตเดกเตเดตเตเดดเตเดธเต, เดเดพเดจเดฟเดฑเตเดฑเตผ, เดธเตเดเตเดฏเดฟเดฒเตเดเตพ เดเดจเตเดจเดฟเดต เดเดตเดถเตเดฏเดฎเดพเดฃเต.
เดกเดพเดฑเตเดฑ
เด เดชเตเดฐเตเดเดเตเดฑเตเดฑเดฟเตฝ เดเดเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดฏเดฅเดพเตผเดคเตเดฅ เดกเดพเดฑเตเดฑเดพเดธเตเดฑเตเดฑเต เดฒเตเดเดฌเดพเดเตเดเต เดตเตเดฌเตเดธเตเดฑเตเดฑเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเตเตบเดฒเตเดกเต เดเตเดฏเตเดคเดคเดพเดฃเต. เด
เดตเตผ เดเดคเดพ -
เดเดคเต เดเดคเต เดคเดฐเดคเตเดคเดฟเดฒเตเดณเตเดณ เดตเดฟเดตเดฐเดฎเดพเดฃเต? เดธเดพเดฎเตเดชเดฟเดณเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดตเตผเดทเดเตเดเดณเดพเดฏเดฟ (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 เดเดชเดฏเตเดเดฟเดเตเดเต เดฏเดฅเดพเตผเดคเตเดฅ เดนเดฟเดธเตเดฑเตเดฑเตเดเตเดฐเดพเดฎเตเดเดณเตเดเต เดชเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดฐเต เดธเตเดฑเตเดฑเต เดชเตเดฒเตเดเตเดเต เดเตเดฏเตเดฏเตเดจเตเดจเต.
- เดเตเดเดพเดจเดฟเดฎเตเดฑเตเดฑเต เดเดชเดฏเตเดเดฟเดเตเดเต เดเดตเดถเตเดฏเดฎเตเดณเตเดณ เดชเดพเดฐเดพเดฎเตเดฑเตเดฑเดฑเตเดเตพ เดเดชเดฏเตเดเดฟเดเตเดเต เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดนเดฟเดธเตเดฑเตเดฑเตเดเตเดฐเดพเดฎเตเดเตพ เดเดจเดฟเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเด.
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()
เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดนเดฟเดธเตเดฑเตเดฑเตเดเตเดฐเดพเดฎเตเดเตพ เดจเดฟเตผเดฎเตเดฎเดฟเดเตเดเตเดจเตเดจเต
เดเดชเตเดชเตเตพ เดเดเตเดเตพเดเตเดเต เดเดตเดถเตเดฏเดฎเดพเดฏ เดซเตเตผเดฎเดพเดฑเตเดฑเดฟเตฝ เดเดฐเต เดกเดพเดฑเตเดฑ เดชเดพเดเตเดเตเดเต เดเดฃเตเดเต, เดเดเตเดเตพ เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดนเดฟเดธเตเดฑเตเดฑเตเดเตเดฐเดพเดฎเตเดเตพ เดตเดฐเดฏเตเดเตเดเดพเตป เดคเตเดเดเตเดเตเดจเตเดจเต. เด เดเดฟเดธเตเดฅเดพเดจ เดตเดฟเดตเดฐเดเตเดเตพ - เดคเดฟเดฐเดเตเดเตเดเตเดคเตเดค เดธเดฎเดฏ เดเดเดตเตเดณเดฏเดฟเตฝ เดชเดฐเดฎเดพเดตเดงเดฟ GDP เดเดณเตเดณ เดฎเดฟเดเดเตเด 10 เดฐเดพเดเตเดฏเดเตเดเตพ. เดเดฐเต เดตเตผเดทเดตเตเด เดเดเตเดเตพ เดเตเดฐเดพเดซเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเต.
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 เดเดชเดฏเตเดเดฟเดเตเดเต เดชเตเดฒเตเดเตเดเตเดเตพ เดธเตเดทเตเดเดฟเดเตเดเตเดจเตเดจเดคเต เดตเดณเดฐเต เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดฎเตเดเดณเดฟเดฒเต เดเตเดกเต เดตเดฟเดญเดพเดเดคเตเดคเดฟเตฝ เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดคเตเด() เดซเดเดเตเดทเดจเดฟเตฝ เดจเดฟเดฐเดตเดงเดฟ เดชเตเดฐเดงเดพเดจ เดชเตเดฏเดฟเดจเตเดฑเตเดเตพ เดเดฃเตเดเต. เดเดฒเตเดฒเดพ เดเดเดเดเตเดเดณเตเด เดชเตเดฐเดถเตเดจเดเตเดเดณเดฟเดฒเตเดฒเดพเดคเต เดเดจเดฟเดฎเตเดฑเตเดฑเต เดเตเดฏเตเดฏเตเดจเตเดจเดคเดฟเดจเต เด เดต เดเดตเดถเตเดฏเดฎเดพเดฃเต. เดเดตเดถเตเดฏเดฎเตเดเตเดเดฟเตฝ เด เดตเดฏเดฟเตฝ เดเดฟเดฒเดคเต เดชเตเดฐเดฆเตผเดถเดฟเดชเตเดชเดฟเดเตเดเดฟเดฒเตเดฒ. เดเดฆเดพเดนเดฐเดฃเด: เดฒเดเดฌเดฎเดพเดฏ เดเตเดฐเดฟเดกเต เดฒเตเดจเตเดเดณเตเด เดฒเตเดเตปเดกเตเดเดณเตเด เดฎเดพเดคเตเดฐเดฎเต เดตเดฐเดเตเดเดฟเดเตเดเตเดณเตเดณเต, เดเดจเตเดจเดพเตฝ เด เดเตเดเตเดคเดฃเตเดเดฟเดจเตเดฑเต เดถเตเตผเดทเดเดเตเดเดณเตเด เดฎเดฑเตเดฑเต เดจเดฟเดฐเดตเดงเดฟ เดเดเดเดเตเดเดณเตเด เดชเตเดฐเดฆเตเดถเดคเตเดคเต เดจเดฟเดจเตเดจเต เดจเตเดเตเดเด เดเตเดฏเตเดฏเดชเตเดชเตเดเตเดจเตเดจเต.
เดเตเดตเดธเดเตเดเดพเดฐเดฃเด
เดเดตเดฟเดเต เดชเตเดฐเดงเดพเดจ เดชเตเดฐเดตเตผเดคเตเดคเดจเด transition_states (); เดเดคเต เดชเตเดฐเดคเตเดฏเตเด เดธเตเดฑเตเดฑเดพเดฑเตเดฑเดฟเดเต เดเตเดฐเดพเดซเตเดเตพ เดเดฐเตเดฎเดฟเดเตเดเต เดเตเตผเดเตเดเตเดจเตเดจเต. เดเตเดฐเดฟเดกเต เดฒเตเดจเตเดเตพ เดตเดฐเดฏเตเดเตเดเดพเตป view_follow() เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจเต.
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")
เดฑเตเตปเดกเดฑเดฟเดเดเต
เดเดจเดฟเดฎเตเดทเตป เดธเตเดทเตเดเดฟเดเตเดเต เดเดจเดฟเด เดเดฌเตโเดเดเตเดฑเตเดฑเดฟเตฝ เดธเดเดญเดฐเดฟเดเตเดเตเดเดดเดฟเดเตเดเดพเตฝ, เด เดคเต เดเดจเดฟเดฎเตเดฑเตเดฑเต() เดซเดเดเตโเดทเตป เดเดชเดฏเตเดเดฟเดเตเดเต เดฑเตเตปเดกเตผ เดเตเดฏเตเดฏเดพเดจเตเดณเตเดณ เดธเดฎเดฏเดฎเดพเดฃเต. เดเดตเดถเตเดฏเดฎเดพเดฏ เดเดเตเดเตโเดชเตเดเตเดเต เดซเดฏเดฒเดฟเดจเตเดฑเต เดคเดฐเด เด เดจเตเดธเดฐเดฟเดเตเดเต เดเดจเดฟเดฎเตเดฑเตเดฑเดฟเตฝ() เดเดชเดฏเตเดเดฟเดเตเดเตเดจเตเดจ เดฑเตเตปเดกเดฑเตผ เดตเตเดฏเดคเตเดฏเดธเตเดคเดฎเดพเดฏเดฟเดฐเดฟเดเตเดเตเด.
เดเดฟเดซเต
# 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 )
เดซเดฒเด
เดจเดฟเดเตเดเตพเดเตเดเต เดเดพเดฃเดพเดจเดพเดเตเดจเตเดจเดคเตเดชเตเดฒเต, เดธเดเตเดเตเตผเดฃเตเดฃเดฎเดพเดฏ เดเดจเตเดจเตเด เดคเดจเตเดจเตเดฏเดฟเดฒเตเดฒ. เดฎเตเดดเตเดตเตป เดชเดฆเตเดงเดคเดฟเดฏเตเด เดฒเดญเตเดฏเดฎเดพเดฃเต
เดธเตเดเดฟเตฝเดฌเตเดเตเดธเต เดถเตเดชเดพเตผเดถ เดเตเดฏเตเดฏเตเดจเตเดจเต:
- เดฐเดฃเตเดเตเดตเตผเดทเดคเตเดคเต เดชเตเดฐเดพเดเตเดเดฟเดเตเดเตฝ เดเตเดดเตเดธเต
"เดเดพเตป เดเดฐเต PRO เดตเตเดฌเต เดกเตเดตเดฒเดชเตเดชเตผ เดเดฃเต" .- เดเตบเดฒเตเตป เดเตเดดเตเดธเต
"เดเดฆเตเดฏเด เดฎเตเดคเตฝ C# เดกเดตเดฒเดชเตเดชเตผ" .- เดชเตเดฐเดพเดฏเตเดเดฟเด เดตเตผเดท เดเตเดดเตเดธเต
"0 เดฎเตเดคเตฝ PRO เดตเดฐเตเดฏเตเดณเตเดณ PHP เดกเดตเดฒเดชเตเดชเตผ" .
เด เดตเดฒเดเดฌเด: www.habr.com