Iitshathi zebha ezinopopayi ezinokuthi zifakwe ngqo kwisithuba kuyo nayiphi na iwebhusayithi ziya zithandwa kakhulu. Babonisa ukuguquka kweenguqu kuzo naziphi na iimpawu kwixesha elithile kwaye bakwenza oku ngokucacileyo. Makhe sibone indlela yokuyidala usebenzisa i-R kunye neepakethe eziqhelekileyo.
I-Skillbox iyacebisa: Ikhosi esebenzayo
"Umphuhlisi wePython ukusuka ekuqaleni" .Siyakhumbuza: kubo bonke abafundi be "Habr" - isaphulelo se-ruble ye-10 xa ubhalisa kuyo nayiphi na ikhosi ye-Skillbox usebenzisa ikhowudi yokuphromotha "Habr".
Iiphakheji
Sifuna iipakethe kwi-R:
- iggplot2
-
gganimate
Ezi zimbini ziyimfuneko kakhulu. Ukongeza, i-tidyverse, i-janitor kunye nezikali ziya kufuneka ukulawula idatha, ukucoca uluhlu kunye nefomathi ngokufanelekileyo.
Iinkcukacha
Iseti yedatha yokuqala esiza kuyisebenzisa kule projekthi ikhutshelwa kwiwebhusayithi yeBhanki yeHlabathi. Naba ba-
Loluphi ulwazi olu? Isampuli iqulethe ixabiso le-GDP lamazwe amaninzi kwiminyaka emininzi (ukusuka kwi-2000 ukuya kwi-2017).
Ukulungiswa kwedatha
Siza kusebenzisa ikhowudi ethunyelwe ngezantsi ukulungiselela ifomathi yedatha efunekayo. Sicoca amagama eekholam, sijike amanani abe yifomathi yenani, kwaye siguqule idatha sisebenzisa ukuqokelelwa () umsebenzi. Sigcina yonke into efunyenwe kwi-gdp_tidy.csv ukuze isetyenziswe ngakumbi.
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")
Iihistograms ezinopopayi
Ukudala kwabo kufuna izigaba ezimbini:
- Ukuyila iseti epheleleyo yeehistograms kusetyenziswa iggplot2.
- Philisa iihistograms ezimile kunye neeparamitha ezifunwayo usebenzisa i-gganimate.
Inyathelo lokugqibela kukwenza oopopayi ngendlela efunwayo, kuquka iGIF okanye iMP4.
Ilayisha amathala eencwadi
- ilayibrari (icocekile)
- ilayibrari(gganimate)
Ulawulo lwedatha
Kweli nyathelo, kufuneka ucoce idatha ukuze ufumane amazwe ali-10 aphezulu ngonyaka ngamnye. Masifake iikholamu ezininzi eziza kusivumela ukuba sibonise ilivo lehistogram.
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 i-histograms engatshintshiyo
Ngoku ekubeni sinephakheji yedatha kwifomathi efunekayo, siqala ukuzoba i-histograms emileyo. Ulwazi olusisiseko - amazwe ali-10 aphezulu aneGDP ephezulu kwixesha elikhethiweyo. Senza iigrafu zonyaka ngamnye.
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"))
Ukwenza izicwangciso usebenzisa i-ggplot2 kulula kakhulu. Njengoko ubona kwicandelo lekhowudi ngasentla, kukho amanqaku amaninzi abalulekileyo ngomxholo () umsebenzi. Ziyimfuneko ukuze zonke izinto ziphile ngaphandle kweengxaki. Ezinye zazo zinokungaboniswa ukuba kuyimfuneko. Umzekelo: Yimigca yegridi ethe nkqo kuphela ezotywayo, kodwa izihloko ze-axis kunye nezinye izinto ezininzi ziyasuswa kwindawo.
oopopayi
Umsebenzi ongundoqo apha yi-transition_states (), ithungela kunye iigrafu ezimileyo ezahlukileyo. view_follow() isetyenziselwa ukuzoba imigca 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")
Ukunikezela
Nje ukuba uphiliso lwenziwe kwaye lugcinwe kwinto ye-anim, lixesha lokuyinikezela usebenzisa i-animate () umsebenzi. Umnikezeli osetyenziswa kwi-animate() unokwahluka ngokuxhomekeke kuhlobo lwefayile yemveliso efunekayo.
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 )
Isiphumo
Njengoko ubona, akukho nto inzima. Yonke iprojekthi iyafumaneka kwi
I-Skillbox iyacebisa:
- Ikhosi yokusebenza yeminyaka emibini
"Ndingumphuhlisi wewebhu wePRO" .- Ikhosi ekwi-Intanethi
"C # umqambi ukusuka ekuqaleni" .- Ikhosi yonyaka osebenzayo
"Umphuhlisi we-PHP ukusuka kwi-0 ukuya kwi-PRO" .
umthombo: www.habr.com