E hana i nā Histograms Animated me ka hoʻohana ʻana iā R

E hana i nā Histograms Animated me ka hoʻohana ʻana iā R

Ke ulu nui nei nā kiʻi paʻi kiʻi i hiki ke hoʻopili pololei ʻia i kahi pou ma kekahi pūnaewele. Hōʻike lākou i ka dynamics o nā loli i kekahi mau hiʻohiʻona i kekahi manawa a hana maopopo i kēia. E ʻike pehea e hana ai iā lākou me ka hoʻohana ʻana i nā pūʻolo R a me nā generic.

Manaʻo ʻo Skillbox: Papa hana "Python mea hoʻomohala mai ka ʻōpala".

Hoʻomaopopo mākou iā ʻoe: no ka poʻe heluhelu a pau o "Habr" - kahi ho'ēmi o 10 rubles i ka wā e kākau inoa ai i kekahi papa Skillbox e hoʻohana ana i ka code promotional "Habr".

Nā pūʻolo

Pono mākou i nā pūʻolo ma R:

Pono loa kēia mau mea ʻelua. Eia hou, e koi ʻia ka tidyverse, janitor a me nā unahi e hoʻokele i ka ʻikepili, hoʻomaʻemaʻe i ka array a me ke ʻano e like me ia.

ʻikepili

Hoʻoiho ʻia ka ʻikepili kumu a mākou e hoʻohana ai i kēia papahana mai ka pūnaewele Bank Bank. Eia lākou - ʻIkepili WorldBank. ʻO ka ʻikepili like, inā makemake ʻoe i mākaukau, hiki ke hoʻoiho ʻia mai waihona papahana.

He aha ke ʻano o kēia ʻike? Aia ka helu GDP o ka hapa nui o nā ʻāina no kekahi mau makahiki (mai 2000 a 2017).

Ka hoʻoponopono ʻikepili

E hoʻohana mākou i ke code i kau ʻia ma lalo nei no ka hoʻomākaukau ʻana i ka palapala ʻikepili i koi ʻia. Hoʻomaʻemaʻe mākou i nā inoa kolamu, hoʻololi i nā helu i kahi ʻano helu, a hoʻololi i ka ʻikepili me ka hana gather(). Mālama mākou i nā mea a pau i loaʻa ma gdp_tidy.csv no ka hoʻohana hou aku.

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

Nā histograms animated

Pono kā lākou hana ʻana i ʻelua mau pae:

  • Hoʻolālā i kahi pūʻulu piha o nā histograms maoli me ka ggplot2.
  • E hoʻolalelale i nā histograms static me nā ʻāpana makemake me ka gganimate.

ʻO ka hana hope loa, ʻo ia ka hoʻolilo ʻana i ka animation ma ke ʻano i makemake ʻia, me GIF a i ʻole MP4.

Ke hoʻouka nei i nā hale waihona puke

  • hale waihona puke(tidyverse)
  • hale waihona puke(gganimate)

Hooponopono ikepili

Ma kēia ʻanuʻu, pono ʻoe e kānana i ka ʻikepili e kiʻi i nā ʻāina 10 kiʻekiʻe no kēlā me kēia makahiki. E hoʻohui i kekahi mau kolamu e hiki ai iā mākou ke hōʻike i kahi moʻolelo no ka 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()

Ke kūkulu ʻana i nā histogram static

I kēia manawa ua loaʻa iā mākou kahi pūʻolo ʻikepili i ke ʻano i koi ʻia, hoʻomaka mākou e kaha kiʻi i nā histograms static. ʻIke kumu - nā ʻāina 10 kiʻekiʻe me ka GDP kiʻekiʻe loa no ka manawa manawa i koho ʻia. Hana mākou i nā kiʻi no kēlā me kēia makahiki.

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

Maʻalahi loa ka hana ʻana i nā ʻāpana me ka ggplot2. E like me kāu e ʻike ai ma ka ʻāpana code ma luna, aia kekahi mau kī nui me ka hana theme(). Pono lākou i mea e ola ai nā mea āpau me ka pilikia ʻole. ʻAʻole hiki ke hōʻike ʻia kekahi o lākou inā pono. Ka Laʻana: ʻO nā laina kuʻekuʻe a me nā moʻolelo wale nō ke kaha ʻia, akā ua wehe ʻia nā poʻo inoa axis a me nā mea ʻē aʻe mai ia wahi.

wikiō

ʻO ka hana koʻikoʻi ma aneʻi ʻo transition_states (), ʻo ia ke humuhumu i nā kiʻi kikoʻī kaʻawale. Hoʻohana ʻia ka view_follow () e kaha i nā laina laina.

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

Hoʻolimalima

Ke hana ʻia ka animation a mālama ʻia i loko o ka mea animate, ʻo ia ka manawa e hāʻawi iā ia me ka hana animate (). Hiki ke ʻokoʻa ka mea hāʻawi i hoʻohana ʻia ma animate() ma muli o ke ʻano o ka faila puka e pono ai.

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 )

hopena

E hana i nā Histograms Animated me ka hoʻohana ʻana iā R

E like me kāu e ʻike ai, ʻaʻohe mea paʻakikī. Loaʻa ka papahana holoʻokoʻa ma koʻu GitHub, hiki iā ʻoe ke hoʻohana e like me kou manaʻo pono.

Manaʻo ʻo Skillbox:

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka