Pangani Animated Histograms Pogwiritsa Ntchito R

Pangani Animated Histograms Pogwiritsa Ntchito R

Ma chart a makanema ojambula omwe amatha kuyikidwa mwachindunji patsamba lililonse patsamba lililonse akuchulukirachulukira. Amasonyeza kusinthasintha kwa kusintha kwa makhalidwe aliwonse pakapita nthawi ndipo amachita izi momveka bwino. Tiyeni tiwone momwe tingawapangire pogwiritsa ntchito R ndi ma generic phukusi.

Skillbox imalimbikitsa: Njira yothandiza "Wopanga python kuyambira poyambira".

Tikukukumbutsani: kwa owerenga onse a Habr - kuchotsera ma ruble 10 polembetsa maphunziro aliwonse a Skillbox pogwiritsa ntchito nambala yotsatsira ya Habr.

Phukusi

Tikufuna phukusi mu R:

Izi ziwiri ndizofunikira kwambiri. Kuphatikiza apo, tidyverse, janitor ndi masikelo adzafunika kuyang'anira deta, kuyeretsa mndandanda ndikujambula moyenerera.

deta

Zolemba zoyambirira zomwe tidzagwiritse ntchito polojekitiyi zidatsitsidwa kuchokera pa webusayiti ya World Bank. Nawa - WorldBank Data. Deta yomweyi, ngati mukufuna kuti ikhale yokonzeka, ikhoza kutsitsidwa kuchokera zikwatu za polojekiti.

Kodi ichi ndi chidziwitso chotani? Chitsanzocho chili ndi mtengo wa GDP wa mayiko ambiri kwa zaka zingapo (kuyambira 2000 mpaka 2017).

Kukonza deta

Tidzagwiritsa ntchito kachidindo komwe kamayikidwa pansipa kukonzekera mtundu wa data womwe ukufunika. Timachotsa mayina amzati, kutembenuza manambala kukhala nambala, ndikusintha deta pogwiritsa ntchito kukusanya () ntchito. Timasunga zonse zomwe zimalandiridwa mu gdp_tidy.csv kuti tigwiritsenso ntchito.

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

Makanema a histogram

Kupanga kwawo kumafuna magawo awiri:

  • Kukonza ma histograms enieni pogwiritsa ntchito ggplot2.
  • Animate static histograms ndi magawo omwe mukufuna kugwiritsa ntchito gganimate.

Chomaliza ndikupereka makanema ojambula mumtundu womwe mukufuna, kuphatikiza GIF kapena MP4.

Kutsegula malaibulale

  • laibulale (yosintha)
  • library (gganimate)

Kusamalira deta

Mu sitepe iyi, muyenera zosefera deta kupeza pamwamba 10 mayiko chaka chilichonse. Tiyeni tiwonjezere zigawo zingapo zomwe zingatilole kuwonetsa nthano ya 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()

Kupanga ma static histograms

Tsopano popeza tili ndi phukusi la data mumtundu wofunikira, timayamba kujambula ma static histogram. Zambiri zoyambira - mayiko 10 apamwamba omwe ali ndi GDP yayikulu panthawi yosankhidwa. Timapanga ma grafu chaka chilichonse.

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

Kupanga ziwembu pogwiritsa ntchito ggplot2 ndikosavuta. Monga mukuwonera mugawo la code pamwambapa, pali mfundo zingapo zofunika ndi mutu () ntchito. Ndikofunikira kuti zinthu zonse ziziyenda popanda mavuto. Zina mwa izo sizingasonyezedwe ngati kuli kofunikira. Chitsanzo: Ndi mizere yoyima yokha ndi nthano zomwe zimajambulidwa, koma mitu ya axis ndi zigawo zina zingapo zimachotsedwa m'deralo.

makanema ojambula

Ntchito yofunikira apa ndi transition_states (), imagwirizanitsa ma graph osiyana siyana. view_follow () amagwiritsidwa ntchito kujambula mizere ya gridi.

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

Kupereka

Kanemayo atapangidwa ndikusungidwa mu chinthu cha anim, ndi nthawi yoti mugwiritse ntchito animate () ntchito. Wopereka wogwiritsidwa ntchito mu animate() akhoza kukhala wosiyana kutengera mtundu wa fayilo yomwe ikufunika.

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 )

chifukwa

Pangani Animated Histograms Pogwiritsa Ntchito R

Monga mukuonera, palibe chovuta. Ntchito yonse ikupezeka mu GitHub yanga, mutha kugwiritsa ntchito momwe mukufunira.

Skillbox imalimbikitsa:

Source: www.habr.com

Kuwonjezera ndemanga