ααααΌαααΆααααΆααααααΆαα
αααΆαααα’αΆα
αααααααααααααΆαααα
αααα»ααααααΆααα
ααΎααα αααααααΆαα½ααααα»αααα½αααΆααααααΆαααα·αααΆαααΆααααααααΆααα‘αΎαα αα½ααααααα αΆαααΆαααααααααΆαααααΆααααααΌααα
αααα»αααααααααΆαα½ααααα»αααααααααΆααααΆαααα½α α αΎαααααΎααΆαααΆαα
αααΆααα αααααΎαααΈαααααααααΎααα½αααΆαααααααΎ R αα·ααααα
ααααΌαα
α
Skillbox ααααΆαα αααααα·ααααΆααΆααααααα
"α’αααα’αα·αααααα Python ααΈααααΌα" .ααΎαααααΉαα αααααΆααα’αααα’αΆαααΆααα’αααα "Habr" - ααΆααααα α»αααααα 10 rubles αα αααα α»αααααααααα»ααααααα·ααααΆ Skillbox ααΆαα½ααααααααΎαααααΌαααααααααααΆα "Habr" α
αααα αα
ααΎαααααΌαααΆααααα αααααα»α R:
- ggplot2
-
gganimate
ααΆααααΈααααααΊα αΆαααΆα ααααα»αα ααΎαααΈαααααα tidyverse, janitor αα·α scales ααΉαααααΌαααΆαααΆαααΆαααΎααααΈααααααααααα·αααααα αααα’αΆα array αα·α format αα ααΆααααα
αα·αααααα
αααα»ααα·ααααααααΎααααααΎαααΉαααααΎαααα»ααααααααααααααΌαααΆαααΆαααααΈααα ααααααααααααΆααΆααα·αααααα αα
ααΈααααα½ααα -
ααΎααααααΆααααααααααααΆα’αααΈ? ααααΌβαααβααΆαβααααα 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 α
- ααααΎα αααΆα’ααΈααααΌααααΆααα·αα·ααααααΆαα½αααΉααααΆαααΆαααααααααα ααααΆααααααααΎ 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()
ααΆααααΆαα’ααΈααααΌααααΆααα·αα·αααα
α₯α‘αΌααααααΎαααΆααααα αααα·αααααααααα»ααααααααααααααΌαααΆα ααΎαα αΆααααααΎαααΌαα’ααΈααααΌααααΆααα·αα·ααααα ααααααΆαααΌαααααΆα - ααααααααααΌαααΆαα 10 αααααΆα 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()α αα½αααΆα αΆαααΆα αααΎααααΈα±ααααΆαα»ααΆααα’ααααΆαα αααΆαααααααΆααααα αΆα αα½αααΆαααααααα ααααΆαα·αααααΌαααΆααααα αΆαααααα·αααΎα αΆαααΆα αα α§ααΆα αααα ααΆααααααααΆαααααα‘αΆα ααααααααααα αα·αααΏααααααααα»ααααααααααααΌαααΆαααΌα ααα»ααααα αααααΎαα’αααα αα·ααααΆαααΆαα»αα½αα ααα½αααααααααααααΌαααΆαααα ααααΈααααααααα
α αααΆ
αα»αααΆαααααΆαααα ααΈαααααΊ 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")
ααΆααααα αΆα
αα ααααααααααΌαααΈαα αααααΌαααΆααααααΎα αα·ααααααΆαα»ααααα»αααααα»ααΈαα α ααΆαααααααααααααΌααααα αΆαααΆαααααααΎαα»αααΆα animate()α αααααα·ααΈ renderer αααααααΎαααα»α 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