แแแแแแชแแฃแ แ แแแแแแแ แแแแแ แแแแแ, แ แแแแแแแช แจแแแซแแแแ แฉแแกแแแ แแแ แแแแแ แแแกแขแจแ แแแแแกแแแแ แแแแกแแแขแแ, แกแฃแ แฃแคแ แ แแแแฃแแแ แฃแแ แฎแแแแ. แแกแแแ แแฉแแแแแแแ แ แแแแ แแแฎแแกแแแแแแแแก แชแแแแแแแแแแก แแแแแแแแแก แแแ แแแแฃแแ แแ แแแก แแแแแแแแแแแจแ แแ แแแแก แแแแแแ แแแแแแแแ. แแแแฎแแ, แ แแแแ แจแแแฅแแแแ แแกแแแ R แแ แแแแแแ แแแแแขแแแแก แแแแแงแแแแแแ.
Skillbox แแแ แฉแแแ: แแ แแฅแขแแแฃแแ แแฃแ แกแ
"แแแแแแแก แแแแแแแแแ แ แแฃแแแแแ" .แจแแแแฎแกแแแแแ: "Habr"-แแก แงแแแแ แแแแแฎแแแแแกแแแแก - แคแแกแแแแแแแ 10 แ แฃแแแแแแ Skillbox-แแก แแแแแกแแแแ แแฃแ แกแแ แฉแแ แแชแฎแแแกแแก "Habr" แกแแ แแแแแแ แแแแแก แแแแแงแแแแแแ.
แแแแแขแแแ
แฉแแแ แแแญแแ แแแแ แแแแแขแแแ R-แจแ:
- ggplot2
-
แแแแแแแแขแ
แแก แแ แ แฃแแแแฃแ แแกแแ แแฃแชแแแแแแแแ. แแแ แแ แแแแกแ, แแแแแแแแฃแแ, แแแแแแแแแแแ แแ แกแแกแฌแแ แแแ แกแแญแแ แ แแฅแแแแ แแแแแชแแแแ แกแแแแ แแแแแ, แแแกแแแแก แแแกแแกแฃแคแแแแแแแแ แแ แจแแกแแแแแแกแแ แคแแ แแแขแแ แแแแกแแแแก.
แแแแแชแแแแ
แแแแแชแแแแ แแ แแแแแแแ, แ แแแแแกแแช แฉแแแ แแแแแแแงแแแแแ แแ แแ แแแฅแขแจแ, แฉแแแแขแแแ แแฃแแแ แแกแแคแแแ แแแแแแก แแแแแแแ แแแแแ. แแ แแกแแแ -
แ แ แกแแฎแแก แแแคแแ แแแชแแแ แแก? แแแแฃแจแ แจแแแชแแแก แฃแแ แแแแแกแแแแก แแจแ-แก แ แแแแแแแแ แฌแแแก แแแแแแแแแแแจแ (2000 แฌแแแแแ 2017 แฌแแแแแ).
แแแแแชแแแแ แแแแฃแจแแแแแ
แฉแแแ แแแแแแแงแแแแแ แฅแแแแแ แแแแแฅแแแงแแแแฃแ แแแแก แแแแแชแแแแ แกแแญแแ แ แคแแ แแแขแแก แแแกแแแแแแแแแแ. แฉแแแ แแแกแฃแคแแแแแแ แกแแแขแแแแก แกแแฎแแแแแก, แแแฅแชแแแ แแแแ แแแก แ แแชแฎแแแก แคแแ แแแขแจแ แแ แแแฅแชแแแ แแแแแชแแแแแก collect() แคแฃแแฅแชแแแก แแแแแงแแแแแแ. แฉแแแ แแแแแฎแแแ แงแแแแแคแแ แก, แ แแช แแแแฆแแแ 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-แแก แแแแแงแแแแแแ.
- แกแขแแขแแแฃแ แ แฐแแกแขแแแ แแแแแแก แแแแแแชแแ แกแแกแฃแ แแแแ แแแ แแแแขแ แแแแ gganimate-แแก แแแแแงแแแแแแ.
แกแแแแแแ แแแแแฏแ แแ แแก แแแแแแชแแแก แแแแแฆแแแ แกแแกแฃแ แแแ แคแแ แแแขแจแ, แแแ แจแแ แแก GIF แแ MP4.
แแขแแแ แแแแ แแแแแแแแแแแแ
- แแแแแแแแแแ (Tidyverse)
- แแแแแแแแแแ (แแแแแแแแขแ)
แฒแแแแชแแแแ แแแ แแแ
แแ แแขแแแแ, แแฅแแแ แฃแแแ แแแคแแแขแ แแ แแแแแชแแแแแ, แ แแ แแแแฆแแ แขแแ 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()
แกแขแแขแแแฃแ แ แฐแแกแขแแแ แแแแแแก แแแแแ
แแฎแแ, แ แแแแกแแช แฉแแแ แแแแฅแแก แแแแแชแแแแ แแแแแขแ แกแแญแแ แ แคแแ แแแขแจแ, แแแฌแงแแแ แกแขแแขแแแฃแ แ แฐแแกแขแแแ แแแแแแก แแแฎแแขแแแก. แซแแ แแแแแ แแแคแแ แแแชแแ - แขแแ 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-แแก แแแแแงแแแแแแ แซแแแแแ แแแ แขแแแแ. แ แแแแ แช แแแแแ แแแงแแแแแแ แแแแแก แแแแงแแคแแแแแแจแ แฎแแแแแ, แแ แกแแแแแก แ แแแแแแแแ แซแแ แแแแแ แแฃแแฅแขแ theme() แคแฃแแฅแชแแแ. แแกแแแ แแฃแชแแแแแแแแ แแกแ, แ แแ แงแแแแ แแแแแแแขแ แแชแแชแฎแแแแก แฃแแ แแแแแแแ. แแแแแแ แแ แแแแแแแ แจแแแซแแแแ แแ แแงแแก แแแฉแแแแแแ แกแแญแแ แแแแแก แจแแแแฎแแแแแจแ. แแแแแแแแ: แแฎแแแแ แแแ แขแแแแแฃแ แ แแแแแก แฎแแแแแ แแ แแแแแแแแแแ แแแฎแแขแฃแแ, แแแแ แแ แฆแแ แซแแแแก แกแแแแฃแ แแแ แแ แ แแแแแแแแ แกแฎแแ แแแแแแแแแขแ แแแแฆแแแฃแแแ แแ แแแแ.
แแแแแแชแแ
แซแแ แแแแแ แคแฃแแฅแชแแ แแฅ แแ แแก 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")
แแแฌแแแ
แแแก แจแแแแแ, แ แแช แแแแแแชแแ แจแแแฅแแแแแ แแ แแแแฎแแแ anim แแแแแฅแขแจแ, แแ แแ แแแกแ แ แแแแแ แ 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 )
แจแแแแแ
แ แแแแ แช แฎแแแแแ, แแ แแคแแ แแ แ แแฃแแ. แแแแแ แแ แแแฅแขแ แฎแแแแแกแแฌแแแแแแ
Skillbox แแแ แฉแแแ:
- แแ แฌแแแแแ แแ แแฅแขแแแฃแแ แแฃแ แกแ
"แแ แแแ PRO แแแ แแแแแแแแแ แ" .- แแแแแแ แแฃแ แกแ
"C# แแแแแแแแแ แ แแฃแแแแแ" .- แแ แแฅแขแแแฃแแ แฌแแแก แแฃแ แกแ
"PHP แแแแแแแแแ แ 0-แแแ PRO-แแแ" .
แฌแงแแ แ: www.habr.com