د R په کارولو سره متحرک هسټوګرامونه جوړ کړئ

د R په کارولو سره متحرک هسټوګرامونه جوړ کړئ

د متحرک بار چارټونه چې په مستقیم ډول په هره ویب پاڼه کې پوسټ کې ځای پرځای کیدی شي په زیاتیدونکي توګه مشهور کیږي. دوی په یو ټاکلي وخت کې په هر ډول ځانګړتیاو کې د بدلون متحرکات څرګندوي او دا په روښانه ډول ترسره کوي. راځئ وګورو چې دا څنګه د R او عمومي کڅوړو په کارولو سره رامینځته کړئ.

Skillbox وړاندیز کوي: عملي کورس "د پایتون پراختیا کونکی له پیل څخه".

موږ یادونه کوو: د ټولو هابر لوستونکو لپاره - د 10 روبل تخفیف کله چې د هابر پرومو کوډ په کارولو سره د مهارت بکس کوم کورس کې نوم لیکنه وکړئ.

بسته بندي

موږ په R کې کڅوړو ته اړتیا لرو:

دا دواړه خورا اړین دي. برسېره پردې، د معلوماتو اداره کولو، صفا پاکولو او د هغې مطابق فارمیټ کولو لپاره به پاکوالی، جنیټر او پیمانه اړین وي.

معلومات

اصلي ډیټا سیټ چې موږ به یې په دې پروژه کې کاروو د نړیوال بانک له ویب پاڼې څخه ډاونلوډ شوی. دلته دوی دي - د نړیوال بانک ډاټا. ورته ډیټا، که تاسو ورته اړتیا لرئ چمتو شوي، له دې څخه ډاونلوډ کیدی شي د پروژې فولډر.

دا څه ډول معلومات دي؟ نمونه د ډیرو هیوادونو د GDP ارزښت د څو کلونو لپاره (د 2000 څخه تر 2017 پورې) لري.

د معلوماتو پروسس کول

موږ به د اړین ډیټا فارمیټ چمتو کولو لپاره لاندې پوسټ شوی کوډ وکاروو. موږ د کالم نومونه پاکوو، شمیرې د شمیرې په بڼه بدلوو، او ډاټا د gather() فنکشن په کارولو سره بدلوو. موږ هرڅه چې په gdp_tidy.csv کې ترلاسه شوي د نورو کارولو لپاره خوندي کوو.

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

متحرک هسټوګرامونه

د دوی جوړول دوه مرحلو ته اړتیا لري:

  • د ggplot2 په کارولو سره د ریښتیني هسټوګرامونو بشپړ سیټ پلیټ کول.
  • د gganimate په کارولو سره د مطلوب پیرامیټونو سره جامد هسټوګرامونه متحرک کړئ.

وروستی ګام دا دی چې حرکت په مطلوب شکل کې وړاندې کړئ، په شمول د GIF یا MP4.

د کتابتونونو بارول

  • کتابتون
  • کتابتون

د معلوماتو مدیریت

پدې مرحله کې، تاسو اړتیا لرئ د هر کال لپاره د 10 غوره هیوادونو ترلاسه کولو لپاره ډاټا فلټر کړئ. راځئ چې څو کالمونه اضافه کړو چې موږ ته اجازه راکوي د هسټوګرام لپاره افسانه وښیو.

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

د جامد هسټوګرامونو جوړول

اوس چې موږ په اړین شکل کې د ډیټا کڅوړه لرو، موږ د جامد هسټوګرامونو رسمول پیل کوو. لومړني معلومات - د ټاکل شوي وخت وقفې لپاره د اعظمي GDP سره 10 غوره هیوادونه. موږ د هر کال لپاره ګرافونه جوړوو.

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

د ggplot2 په کارولو سره د پلاټونو جوړول خورا ساده دي. لکه څنګه چې تاسو پورته د کوډ برخه کې لیدلی شئ، د موضوع() فنکشن سره ډیری کلیدي ټکي شتون لري. دوی اړین دي ترڅو ټول عناصر پرته له ستونزو څخه متحرک شي. ځینې ​​​​یې ممکن د اړتیا په صورت کې ښکاره نشي. بېلګه: یوازې د عمودی گرډ کرښې او افسانې رسم شوي، مګر د محور سرلیکونه او څو نورې برخې د ساحې څخه لیرې شوي.

حرکتونه

دلته کلیدي دنده transition_states() ده، دا جلا جلا جامد ګرافونه سره یوځای کوي. view_follow() د ګریډ لاینونو د رسم کولو لپاره کارول کیږي.

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

وړاندې کول

یوځل چې انیمیشن رامینځته شي او په anim څیز کې زیرمه شي ، نو دا وخت دی چې د animate() فنکشن په کارولو سره یې وړاندې کړئ. په animate() کې کارول شوی رینډر کولی شي د اړتیا وړ محصول فایل ډول پورې اړه ولري.

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 )

نتيجه

د R په کارولو سره متحرک هسټوګرامونه جوړ کړئ

لکه څنګه چې تاسو لیدلی شئ، هیڅ شی پیچلي ندي. ټوله پروژه په کې شتون لري زما GitHub، تاسو کولی شئ دا وکاروئ لکه څنګه چې تاسو مناسب ګورئ.

Skillbox وړاندیز کوي:

سرچینه: www.habr.com

Add a comment