
Lasa malaza be ny sarin'ny bar misy animΓ© izay azo ampidirina mivantana amin'ny lahatsoratra amin'ny tranokala rehetra. Asehon'izy ireo ny fihetsehan'ny fiovana amin'ny toetra rehetra mandritra ny fotoana voafaritra ary manao izany mazava tsara. Andao hojerentsika ny fomba hamoronana azy ireo amin'ny alΓ lan'ny R sy fonosana gΓ©nΓ©rique.
Skillbox dia manoro hevitra: Mazava ho azy .
Mampahatsiahy izahay: ho an'ny mpamaky rehetra ny "Habr" - fihenam-bidy 10 roubles rehefa misoratra anarana amin'ny taranja Skillbox rehetra mampiasa ny code promotional "Habr".
entana
Mila fonosana amin'ny R izahay:
- ggplot2
Tena ilaina tokoa ireo roa ireo. Ho fanampin'izany, ny tidyverse, ny janitor ary ny mizana dia takiana amin'ny fitantanana ny angon-drakitra, ny fanadiovana ny array sy ny endrika mifanaraka amin'izany.
tahirin-kevitra
Ny angona tany am-boalohany hampiasainay amin'ity tetikasa ity dia alaina avy amin'ny tranokalan'ny Banky Iraisam-pirenena. Eto izy ireo - . Ny angon-drakitra mitovy, raha mila azy efa vita ianao, dia azo alaina avy amin'ny .
Karazana fampahalalana inona izany? Ny santionany dia ahitana ny sandan'ny GDP an'ny ankamaroan'ny firenena nandritra ny taona maromaro (manomboka 2000 ka hatramin'ny 2017).
Fanodinana data
Hampiasa ny kaody napetraka eto ambany izahay hanomanana ny format data ilaina. Manadio ny anaran'ny tsanganana izahay, mamadika ny isa ho endrika isa, ary mamadika ny angon-drakitra amin'ny alΓ lan'ny asa gather(). Tehirizinay daholo izay voaray ao amin'ny gdp_tidy.csv mba hampiasaina bebe kokoa.
library(tidyverse)
library(janitor)
gdp <- read_csv("./data/GDP_Data.csv")
#safidio ny tsanganana ilaina
gdp <- gdp %>% mifidy(3:15)
#sivana ihany ny laharan'ny firenena
gdp <- gdp[1:217,]
gdp_tidy <- gdp %>%
mutate_at(vars(misy("YR")), as.numeric) %>%
manangona(taona, sanda,3:13) %>%
mpanadio::clean_names() %>%
mutate(taona = as.numeric(stringr::str_sub(taona,1,4)))
write_csv(gdp_tidy,"./data/gdp_tidy.csv")
Animated histograms
Ny famoronana azy ireo dia mitaky dingana roa:
- Mamolavola andiana histograma tena izy amin'ny fampiasana ggplot2.
- Ampifanaraho ny histograma static miaraka amin'ny masontsivana tianao amin'ny fampiasana gganimate.
Ny dingana farany dia ny mamadika ny sarimiaina amin'ny endrika tiana, anisan'izany ny GIF na MP4.
Mametraka tranomboky
- trano famakiam-boky (tidyverse)
- tranomboky (gganimate)
Fitantanana data
Amin'ity dingana ity, mila manivana ny angon-drakitra ianao hahazoana ireo firenena 10 ambony indrindra isan-taona. Andeha isika hanampy tsanganana maromaro ahafahantsika mampiseho angano momba ny histograma.
gdp_tidy <- read_csv("./data/gdp_tidy.csv")
gdp_formatted <- gdp_tidy %>%
group_by(taona) %>%
# Ny * 1 dia ahafahana manana laharana tsy integer mandritra ny sliding
mutate(laharana = laharana(-value),
Value_rel = valeur/value[rank==1],
Value_lbl = paste0(" ",round(value/1e9))) %>%
group_by(firenena_name) %>%
sivana(laharana <=10) %>%
misaraka ()
Manangana histograma static
Amin'izao fotoana izao dia manana fonosana angon-drakitra amin'ny endrika ilaina isika, manomboka manao sary histograma static. Fampahalalana fototra - firenena 10 ambony manana PIB ambony indrindra amin'ny elanelan'ny fotoana voafantina. Mamorona grafika isan-taona izahay.
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"))
Tena tsotra ny famoronana tetika mampiasa ggplot2. Araka ny hitanao ao amin'ny fizarana kaody etsy ambony dia misy hevi-dehibe maromaro miaraka amin'ny fiasa theme(). Ilaina izy ireo mba hahafahan'ny singa rehetra mihetsika tsy misy olana. Mety tsy aseho ny sasany amin'izy ireo raha ilaina. Ohatra: Ny tsipika sy ny angano mitsangana ihany no alaina, fa ny lohatenin'ny axis sy ny singa hafa dia nesorina tao amin'ilay faritra.
fanentanana
Ny fiasa fototra eto dia ny transition_states(), manjaitra ireo grafika static misaraka. view_follow() dia ampiasaina hanoratana tsipika tsipika.
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")
dikan-
Raha vantany vao noforonina sy voatahiry ao amin'ny zavatra anime ny sarimiaina, fotoana izao handikana azy amin'ny fampiasana ny fiasa animate(). Ny renderer ampiasaina amin'ny animate() dia mety tsy mitovy arakaraka ny karazana rakitra mivoaka ilaina.
GIF
# For GIF
animate(anim, 200, fps = 20, sakany = 1200, haavo = 1000,
renderer = gifski_renderer("gganim.gif"))
MP4
# For MP4
animate(anim, 200, fps = 20, sakany = 1200, haavo = 1000,
renderer = ffmpeg_renderer()) -> for_mp4
anim_save("animation.mp4", animation = for_mp4 )
vokatra

Araka ny hitanao, tsy misy sarotra. Ny tetikasa manontolo dia misy ao , azonao ampiasaina araka izay hitanao fa mety.
Skillbox dia manoro hevitra:
- Taranja azo ampiharina roa taona .
- Mazava ho azy amin'ny Internet .
- Taranja fanao isan-taona .
Source: www.habr.com
