Waihangahia nga Histograms Animated using R

Waihangahia nga Histograms Animated using R

Kei te kaha haere te rongonui o nga tūtohi pae pakiwaituhi ka taea te whakauru ki roto i tetahi pou i runga i tetahi paetukutuku. Ka whakaatu ratou i nga hihiko o nga huringa i roto i nga ahuatanga i roto i tetahi waa ka mahi marama. Kia kite tatou me pehea te hanga ma te whakamahi i nga kohinga R me nga kohinga whanui.

Ka tūtohu a Skillbox: Akoranga mahi "Python kaiwhakawhanake mai i te wahanga".

Ka whakamahara matou: mo nga kaipānui katoa o "Habr" - he utu mo te 10 rubles i te wa e whakauru ana ki tetahi akoranga Skillbox ma te whakamahi i te waehere whakatairanga "Habr".

Pōkai

Kei te hiahia matou i nga kete i roto i te R:

Ko enei e rua e tino hiahiatia ana. I tua atu, ka hiahiatia te tidyverse, te kaitiaki me nga unahi ki te whakahaere i nga raraunga, ki te horoi i te raupapa me te whakatakotoranga kia rite.

raraunga

Ko te huinga raraunga taketake ka whakamahia e matou i roto i tenei kaupapa ka tangohia mai i te paetukutuku a te Peeke o te Ao. Anei ratou - Raraunga Peeke Ao. Ko nga raraunga ano, ki te hiahia koe kia rite, ka taea te tango mai i kōpaki kaupapa.

He aha tenei momo korero? Kei roto i te tauira te uara GDP o te nuinga o nga whenua mo etahi tau (mai i te 2000 ki te 2017).

Te tukatuka raraunga

Ka whakamahia e matou te waehere kua tuhia i raro nei hei whakarite i te whakatakotoranga raraunga e hiahiatia ana. Ka whakawāteahia ngā ingoa tīwae, ka huri ngā tau ki te whakatakotoranga tau, ka huri i ngā raraunga mā te mahi kohikohi(). Ka tiakina e matou nga mea katoa ka riro mai i te gdp_tidy.csv hei whakamahi ano.

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

Ko nga histograms pakiwaituhi

E rua nga waahanga o to raatau hanganga:

  • Te whakatakoto i te huinga katoa o nga histograms ma te whakamahi i te ggplot2.
  • Whakakorikori histograms pateko me nga tawhā e hiahiatia ana ma te whakamahi i te gganimate.

Ko te mahi whakamutunga ko te tuku i te hākoritanga ki te whakatakotoranga e hiahiatia ana, tae atu ki te GIF me te MP4.

E uta ana i nga whare pukapuka

  • whare pukapuka(tidyverse)
  • whare pukapuka(gganimate)

Te whakahaere raraunga

I tenei taahiraa, me tarai koe i nga raraunga kia whiwhi i nga whenua 10 runga mo ia tau. Me taapiri etahi pou e taea ai e tatou te whakaatu korero mo te 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()

Te hanga histograms pateko

Inaianei he kete raraunga kei roto i te whakatakotoranga e hiahiatia ana, ka timata taatau ki te tuhi histograms pateko. Nga korero taketake - nga whenua 10 o runga me te GDP morahi mo te waahi wa kua tohua. Ka hanga kauwhata mo ia tau.

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

Ko te hanga papa ma te whakamahi i te ggplot2 he tino ngawari. Ka taea e koe te kite i te waahanga waehere i runga ake nei, he maha nga waahanga matua me te kaupapa () mahi. He mea tika kia ora nga huānga katoa me te kore raru. Ko etahi o aua mea kaore pea e whakaatuhia mena ka tika. Tauira: Ko nga rarangi matiti poutū me nga pakiwaitara anake ka tuhia, engari ko nga taitara tuaka me etahi atu waahanga ka tangohia mai i te waahi.

hākoritanga

Ko te mahi matua i konei ko transition_states(); Ka whakamahia te view_follow() ki te tuhi raina matiti.

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

Te tuku

Kia hangahia te hākoritanga me te penapena i roto i te ahanoa animate, kua tae ki te wa ki te whakaputa ma te whakamahi i te mahi animate(). Ko te kaituku e whakamahia ana i roto i te animate() ka rereke pea i runga i te momo konae whakaputa e hiahiatia ana.

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 )

hua

Waihangahia nga Histograms Animated using R

Ka taea e koe te kite, kaore he mea uaua. Kei te waatea te kaupapa katoa i roto taku GitHub, ka taea e koe te whakamahi kia rite ki taau e pai ai.

Ka tūtohu a Skillbox:

Source: will.com

Tāpiri i te kōrero