Cruthaigh Histeagraim Bheoite le R

Cruthaigh Histeagraim Bheoite le R

Tá barrachairteacha beoite ar féidir iad a neadú go díreach isteach i bpostáil ar aon láithreán gréasáin ag éirí níos coitianta. Léiríonn siad dinimic na n-athruithe ar shaintréithe ar bith thar thréimhse áirithe ama agus déanann siad é seo go soiléir. A ligean ar a fheiceáil conas iad a chruthú ag baint úsáide as R agus pacáistí cineálacha.

Molann Skillbox: Cúrsa praiticiúil "Forbróir Python ón tús".

Meabhraímid: do léitheoirí uile "Habr" - lascaine de 10 rúbal nuair a chláraíonn siad in aon chúrsa Scilbox ag baint úsáide as an gcód bolscaireachta "Habr".

Pacáistí

Teastaíonn pacáistí uainn i R:

Tá an dá rud seo thar a bheith riachtanach. Ina theannta sin, beidh gá le slachtmhar, dorsaí agus scálaí chun na sonraí a bhainistiú, an t-eagar a ghlanadh agus formáid a dhéanamh dá réir.

Sonraí

Déantar an bunshonraí a úsáidfimid sa tionscadal seo a íoslódáil ó shuíomh Gréasáin an Bhainc Dhomhanda. Seo iad - Sonraí Banc an Domhain. Is féidir na sonraí céanna, má tá sé réidh de dhíth ort, a íoslódáil ó fillteáin tionscadail.

Cén cineál eolais é seo? Tá luach OTI an chuid is mó de na tíortha sa sampla le roinnt blianta anuas (ó 2000 go 2017).

Próiseáil sonraí

Úsáidfimid an cód atá sa phost thíos chun an fhormáid sonraí riachtanach a ullmhú. Glanaimid ainmneacha na gcolún, tiontaighimid na huimhreacha i bhformáid uimhreach, agus tiontóimid na sonraí ag baint úsáide as an bhfeidhm Collect(). Sábháilimid gach rud a fhaightear in gdp_tidy.csv le haghaidh tuilleadh úsáide.

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")

Histeagraim bheochana

Éilíonn a gcruthú dhá chéim:

  • Sraith iomlán histeagraim iarbhír a bhreacadh ag baint úsáide as ggplot2.
  • Beoigh histeagraim statacha le paraiméadair inmhianaithe ag baint úsáide as gganimate.

Is é an chéim dheireanach ná an beochan a sholáthar san fhormáid atá ag teastáil, lena n-áirítear GIF nó MP4.

Leabharlanna á lódáil

  • leabharlann (rann slachtmhar)
  • leabharlann (gganimate)

Bainistíocht sonraí

Sa chéim seo, ní mór duit na sonraí a scagadh chun na 10 dtír is fearr a fháil do gach bliain. Cuirimis roinnt colún leis a ligfidh dúinn finscéal don histeagram a thaispeáint.

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()

Ag tógáil histeagraim statacha

Anois go bhfuil pacáiste sonraí againn san fhormáid riachtanach, tosaímid ag tarraingt histeagraim statacha. Faisnéis bhunúsach - na 10 dtír is fearr a bhfuil OTI uasta acu don eatramh ama roghnaithe. Cruthaímid graif do gach bliain.

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"))

Tá sé an-simplí ceapacha a chruthú ag baint úsáide as ggplot2. Mar a fheiceann tú i rannán an chóid thuas, tá roinnt eochairphointí leis an bhfeidhm téama (). Tá siad riachtanach ionas go mbeidh na heilimintí go léir beo gan fadhbanna. Seans nach dtaispeánfar cuid acu más gá. Sampla: Ní tharraingítear ach na línte greille ingearacha agus na finscéalta, ach baintear na teidil ais agus roinnt comhpháirteanna eile as an limistéar.

beochan

Is í an phríomhfheidhm anseo ná transition_states(), greamaíonn sé graif statacha ar leith le chéile. úsáidtear view_follow() chun línte eangaí a tharraingt.

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")

Rindreáil

Nuair atá an bheochan cruthaithe agus stóráilte sa réad beochana, tá sé in am é a dhéanamh ag baint úsáide as an bhfeidhm beochana(). Féadfaidh an rindreálaí a úsáidtear i beochan() a bheith difriúil ag brath ar an gcineál comhaid aschuir a theastaíonn.

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 )

Toradh

Cruthaigh Histeagraim Bheoite le R

Mar a fheiceann tú, níl aon rud casta. Tá an tionscadal ar fad ar fáil i mo GitHub, is féidir leat é a úsáid mar is cuí leat.

Molann Skillbox:

Foinse: will.com

Add a comment