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:
- ggplot2
-
gganimate
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 -
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
Sezvauri kuona, hapana chakaoma. Iyo yese purojekiti inowanikwa mu
Skillbox inokurudzira:
- Makore maviri anoshanda kosi
"Ini ndiri PRO webhu developer" .- Yepamhepo kosi
"C # mugadziri kubva pakutanga" .- Kosi yegore rimwechete
"PHP mugadziri kubva 0 kusvika PRO" .
Source: www.habr.com