Cruthaich histograman beòthail a’ cleachdadh R

Cruthaich histograman beòthail a’ cleachdadh R

Tha fèill mhòr air clàran-bàr beòthail a dh’fhaodar fhighe a-steach gu dìreach ann am post air làrach-lìn sam bith. Bidh iad a’ taisbeanadh daineamaigs atharrachaidhean ann am feartan sam bith thar ùine shònraichte agus a’ dèanamh seo gu soilleir. Chì sinn mar a chruthaicheas tu iad le bhith a’ cleachdadh R agus pasganan coitcheann.

Tha Skillbox a’ moladh: Cùrsa practaigeach "Python leasaiche bhon toiseach".

Tha sinn a ’cur nar cuimhne: airson a h-uile leughadair de "Habr" - lasachadh de 10 rubles nuair a chlàraicheas tu ann an cùrsa sam bith Skillbox a 'cleachdadh a' chòd adhartachaidh "Habr".

Pacaidean

Feumaidh sinn pacaidean ann an R:

Tha an dithis seo gu math riatanach. A bharrachd air an sin, bidh feum air sgioblachadh, dorsair agus lannan gus an dàta a riaghladh, an raon agus an cruth a ghlanadh a rèir sin.

dàta

Thèid an dàta tùsail a chleachdas sinn sa phròiseact seo a luchdachadh sìos bho làrach-lìn Banca na Cruinne. Seo iad - Dàta Banca na Cruinne. Faodar an aon dàta, ma tha feum agad air deiseil, a luchdachadh sìos bho pasganan pròiseict.

Dè an seòrsa fiosrachaidh a tha seo? Anns an sampall tha luach GDP a’ mhòr-chuid de dhùthchannan airson grunn bhliadhnaichean (bho 2000 gu 2017).

Giullachd dàta

Cleachdaidh sinn an còd gu h-ìosal gus an cruth dàta a tha a dhìth ullachadh. Bidh sinn a 'glanadh ainmean nan colbhan, a' tionndadh na h-àireamhan gu cruth àireamh, agus ag atharrachadh an dàta a 'cleachdadh a' ghnìomh cruinneachadh (). Sàbhailidh sinn a h-uile rud a gheibhear ann an gdp_tidy.csv airson tuilleadh feum.

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

Histograman beòthail

Feumaidh an cruthachadh aca dà ìre:

  • A’ dealbhadh seata iomlan de fhìor histograman a’ cleachdadh ggplot2.
  • Dèan beothachadh air histograman statach le paramadairean a tha thu ag iarraidh a’ cleachdadh gganimate.

Is e an ceum mu dheireadh am beòthalachd a thoirt seachad anns a’ chruth a tha thu ag iarraidh, a’ toirt a-steach GIF no MP4.

A luchdachadh a-nuas bho leabharlannan

  • leabharlann (rann sgiobalta)
  • leabharlann (gganimate)

Stiùireadh dàta

Sa cheum seo, feumaidh tu an dàta a shìoladh gus na 10 dùthchannan as fheàrr fhaighinn airson gach bliadhna. Nach cuir sinn grunn cholbhan ris a leigeas leinn uirsgeul airson an histogram a thaisbeanadh.

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

Togail histograman statach

A-nis gu bheil pasgan dàta againn anns a’ chruth a tha a dhìth, tòisichidh sinn a’ tarraing histograman statach. Fiosrachadh bunaiteach - na 10 dùthchannan as fheàrr le GDP as àirde airson an ùine a chaidh a thaghadh. Bidh sinn a’ cruthachadh ghrafaichean airson gach bliadhna.

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

Tha cruthachadh plotaichean a’ cleachdadh ggplot2 gu math sìmplidh. Mar a chì thu anns an roinn còd gu h-àrd, tha grunn phrìomh phuingean ann leis a’ ghnìomh cuspair (). Tha iad riatanach gus am bi na h-eileamaidean uile beò gun duilgheadasan. Is dòcha nach tèid cuid dhiubh a thaisbeanadh ma tha sin riatanach. Eisimpleir: Chan eil ach na loidhnichean clèithe dìreach agus uirsgeulan air an tarraing, ach tha na tiotalan axis agus grunn phàirtean eile air an toirt air falbh bhon sgìre.

beothalachd

Is e am prìomh ghnìomh an seo transition_states (), bidh e a’ fuaigheal grafaichean statach fa leth còmhla. view_follow() a chleachdadh gus loidhnichean clèithe a tharraing.

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

A ’toirt seachad

Aon uair ‘s gu bheil am beòthalachd air a chruthachadh agus air a stòradh anns an rud beòthalachd, tha an t-àm ann a thoirt seachad a’ cleachdadh a ’ghnìomh beothachadh (). Faodaidh an renderer a thèid a chleachdadh ann am beothachadh () a bhith eadar-dhealaichte a rèir an seòrsa faidhle toraidh a tha a dhìth.

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 )

thoradh air

Cruthaich histograman beòthail a’ cleachdadh R

Mar a chì thu, chan eil dad iom-fhillte. Tha am pròiseact gu lèir ri fhaighinn ann an mo GitHub, faodaidh tu a chleachdadh mar a chì thu iomchaidh.

Tha Skillbox a’ moladh:

Source: www.habr.com

Cuir beachd ann