Gadzira Animated Histograms Uchishandisa R

Gadzira Animated Histograms Uchishandisa R

Animated bar machati anogona kunyudzwa zvakananga mupositi pane chero webhusaiti ari kuwedzera mukurumbira. Vanoratidza masimba ekuchinja mune chero maitiro pane imwe nguva uye vanoita izvi zvakajeka. Ngationei kuti tingazvigadzira sei uchishandisa R uye generic mapakeji.

Skillbox inokurudzira: Nzira inoshanda "Python developer kubva pakutanga".

Tinoyeuchidza: kune vese vaverengi veHabr - a 10 ruble mutengo paunenge uchinyoresa mune chero Skillbox kosi uchishandisa iyo Habr promo kodhi.

Packages

Tinoda mapakeji muR:

Izvi zviviri zvakakosha zvakanyanya. Uye zvakare, tidyverse, janitor uye zvikero zvinozodikanwa kubata iyo data, kuchenesa array uye fomati zvinoenderana.

dhata

Dataset yepakutanga yatichashandisa muchirongwa ichi yakatorwa kubva pawebhusaiti yeWorld Bank. Hevano vari - WorldBank Data. Iyo data yakafanana, kana uchiida yakagadzirira-yakagadzirwa, inogona kutorwa kubva project folders.

Rudzii rweruzivo urwu? Sample ine kukosha kweGDP yenyika zhinji kwemakore akati wandei (kubva 2000 kusvika 2017).

Kugadziriswa kwedata

Isu tichashandisa iyo kodhi yakatumirwa pazasi kugadzirira inodiwa data fomati. Isu tinobvisa mazita emakoramu, shandura manhamba kuita nhamba fomati, uye shandura iyo data tichishandisa kuunganidza () basa. Isu tinochengetedza zvese zvinogamuchirwa mu gdp_tidy.csv kuti zvishandiswe zvakare.

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

Animated histograms

Kusikwa kwavo kunoda matanho maviri:

  • Kuronga seti yakazara yehistograms chaiyo uchishandisa ggplot2.
  • Animate static histograms neinodiwa paramita uchishandisa gganimate.

Danho rekupedzisira nderekupa iwo animation mune yaunoda fomati, kusanganisira GIF kana MP4.

Kurodha maraibhurari

  • raibhurari (yakarongeka)
  • raibhurari (gganimate)

Data management

Munhanho iyi, unofanirwa kusefa data kuti uwane nyika gumi dzepamusoro pagore rega rega. Ngatiwedzerei makoramu akati wandei anotitendera kuratidza ngano yehistogram.

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

Kuvaka static histograms

Iye zvino zvatine data package mune inodiwa fomati, tinotanga kudhirowa static histograms. Ruzivo rwekutanga - nyika gumi dzepamusoro dzine GDP yakakura yenguva yakasarudzwa. Isu tinogadzira magirafu egore rega rega.

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

Kugadzira zvirongwa uchishandisa ggplot2 zviri nyore. Sezvauri kuona muchikamu chekodhi pamusoro, pane akati wandei mapoinzi ane theme() basa. Izvo zvinodiwa kuti zvinhu zvese zvirarame pasina matambudziko. Mamwe acho anogona kusaratidzwa kana zvichidikanwa. Muenzaniso: Chete mitsetse yegidhi yakatwasuka uye ngano inodhirowewa, asi mazita eaxis nezvimwe zvakati wandei zvinobviswa munzvimbo.

kuchangamuka

Basa rakakosha pano ndere transition_states(), rinosonera pamwe chete akapatsanurwa static graph. view_follow() inoshandiswa kudhiza mitsetse 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")

Kupa

Kana iyo animation yagadzirwa uye yakachengetwa muanim chinhu, inguva yekuipa uchishandisa iyo animate () basa. Renderer inoshandiswa muanimate() inogona kusiyana zvichienderana nerudzi rwefaira rekubuda rinodiwa.

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 )

mugumisiro

Gadzira Animated Histograms Uchishandisa R

Sezvauri kuona, hapana chakaoma. Iyo yese purojekiti inowanikwa mu GitHub yangu, unogona kuishandisa sezvaunoona zvakakodzera.

Skillbox inokurudzira:

Source: www.habr.com

Voeg