Amashadi ebha agqwayizayo angashumekwa ngokuqondile kokuthunyelwe kunoma iyiphi iwebhusayithi aya ngokuya aduma. Babonisa ukuguquguquka kwezinguquko kunoma yiziphi izici phakathi nesikhathi esithile futhi bakwenza lokhu ngokucacile. Ake sibone ukuthi zingawadala kanjani usebenzisa amaphakheji we-R nama-generic.
I-Skillbox iyancoma: Isifundo esiwusizo
"Python developer kusukela ekuqaleni" .Siyakukhumbuza: kubo bonke abafundi be-"Habr" - isaphulelo sama-ruble angu-10 lapho ubhalisa kunoma yisiphi isifundo se-Skillbox usebenzisa ikhodi yephromoshini ethi "Habr".
Amaphakheji
Sidinga amaphakheji ku-R:
- ggplot2
-
gganimate
Lezi ezimbili zidingeka kakhulu. Ngaphezu kwalokho, kuzodingeka i-tidyverse, i-janitor nezikali ukuze kuphathwe idatha, kuhlanzwe amalungu afanayo futhi kufomethwe ngendlela efanele.
Idatha
Idathasethi yasekuqaleni esizoyisebenzisa kule phrojekthi ilandwa kuwebhusayithi yeBhange Lomhlaba. Nampa -
Hlobo luni lolwazi lolu? Isampula iqukethe inani le-GDP lamazwe amaningi iminyaka embalwa (kusukela ngo-2000 kuya ku-2017).
Ukucubungula idatha
Sizosebenzisa ikhodi ethunyelwe ngezansi ukuze silungise ifomethi yedatha edingekayo. Sisula amagama ekholomu, siguqule izinombolo zibe ifomethi yenombolo, futhi siguqule idatha sisebenzisa umsebenzi wokuqoqa (). Sigcina yonke into etholwa ku-gdp_tidy.csv ukuze isetshenziswe futhi.
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")
Ama-histograms agqwayizayo
Ukwakhiwa kwabo kudinga izigaba ezimbili:
- Ukuhlela isethi ephelele yama-histograms wangempela usebenzisa i-ggplot2.
- Gqwayiza ama-histogram amile ngamapharamitha afiswayo usebenzisa i-gganimate.
Isinyathelo sokugcina siwukunikeza ukugqwayiza ngefomethi oyifunayo, okuhlanganisa i-GIF noma i-MP4.
Ilayisha imitapo yolwazi
- umtapo wolwazi (i-tidyverse)
- umtapo wolwazi (gganimate)
Ukuphathwa kwedatha
Kulesi sinyathelo, udinga ukuhlunga idatha ukuze uthole amazwe ayi-10 aphezulu unyaka ngamunye. Ake sengeze amakholomu amaningana azosivumela ukuthi sibonise inganekwane ye-histogram.
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()
Ukwakha ama-histograms amile
Manje njengoba sesinephakheji yedatha ngefomethi edingekayo, siqala ukudweba ama-histogram amile. Ulwazi oluyisisekelo - amazwe ayi-10 aphezulu ane-GDP ephezulu ngesikhathi esikhethiwe. Sakha amagrafu unyaka ngamunye.
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"))
Ukudala iziza usebenzisa i-ggplot2 kulula kakhulu. Njengoba ungabona esigabeni sekhodi ngenhla, kunamaphuzu abalulekile amaningana anomsebenzi wetimu (). Ziyadingeka ukuze zonke izakhi ziphile ngaphandle kwezinkinga. Ezinye zazo zingase zingavezwa uma kunesidingo. Isibonelo: Kudwetshwa imigqa yegridi eqondile kuphela kanye nezinganekwane, kodwa izihloko ze-eksisi nezinye izingxenye ezimbalwa ziyasuswa endaweni.
Ukugqwayiza
Umsebenzi oyinhloko lapha uthi i-transition_states(), ihlanganisa ndawonye amagrafu amile ahlukene. view_follow() isetshenziselwa ukudweba imigqa yegridi.
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")
Iyanikezela
Uma ukugqwayiza sekudaliwe futhi kwagcinwa entweni ye-anim, yisikhathi sokuyinikela usebenzisa i-animate() umsebenzi. Isinikezeli esisetshenziswe ku-animate() singahluka kuye ngohlobo lwefayela lokuphumayo elidingekayo.
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 )
Umphumela
Njengoba ubona, akukho lutho oluyinkimbinkimbi. Yonke iphrojekthi iyatholakala ku
I-Skillbox iyancoma:
- Isifundo sokwenza iminyaka emibili
"Ngingumthuthukisi wewebhu we-PRO" .- Inkambo eku-inthanethi
"C# developer kusukela ekuqaleni" .- Isifundo sonyaka esisebenzayo
"Unjiniyela we-PHP kusuka ku-0 kuye ku-PRO" .
Source: www.habr.com