
Awọn shatti igi ere idaraya ti o le wa ni ifibọ taara sinu ifiweranṣẹ lori oju opo wẹẹbu eyikeyi n di olokiki pupọ si. Wọn ṣe afihan awọn iyipada ti awọn ayipada ni eyikeyi awọn abuda ni akoko kan ati ṣe eyi ni kedere. Jẹ ki a wo bii o ṣe le ṣẹda wọn nipa lilo R ati awọn idii jeneriki.
Skillbox ṣe iṣeduro: Ilana ti o wulo .
A leti: fun gbogbo awọn oluka ti "Habr" - ẹdinwo ti 10 rubles nigbati o forukọsilẹ ni eyikeyi iṣẹ-ẹkọ Skillbox nipa lilo koodu ipolowo “Habr”.
Awọn akopọ
A nilo awọn idii ni R:
- ggplot2
Awọn wọnyi meji ni o wa lalailopinpin pataki. Ni afikun, tidyverse, janitor ati awọn irẹjẹ yoo nilo lati ṣakoso data naa, nu titobi ati ọna kika ni ibamu.
Data
Eto data atilẹba ti a yoo lo ninu iṣẹ akanṣe yii jẹ igbasilẹ lati oju opo wẹẹbu Banki Agbaye. Nibi ti won wa - . Data kanna, ti o ba nilo ti o ti ṣetan, le ṣe igbasilẹ lati .
Iru alaye wo ni eyi? Apeere naa ni iye GDP ti ọpọlọpọ awọn orilẹ-ede fun ọpọlọpọ ọdun (lati ọdun 2000 si 2017).
Ṣiṣe data
A yoo lo koodu ti a fiweranṣẹ ni isalẹ lati ṣeto ọna kika data ti a beere. A ko awọn orukọ iwe, yi awọn nọmba sinu ọna kika nọmba, ati iyipada data nipa lilo iṣẹ apejọ (). A fipamọ ohun gbogbo ti o gba ni gdp_tidy.csv fun lilo siwaju sii.
library(tidyverse)
library(janitor)
gdp <- read_csv(."/data/GDP_Data.csv")
# yan awọn ọwọn ti o nilo
gdp <- gdp %>% yan(3:15)
# àlẹmọ awọn ori ila orilẹ-ede nikan
gdp <- gdp[1:217,]
gdp_tidy <- gdp %>%
mutate_at(vars(ni ninu ("YR")),bi.nọmba) %>%
kó (odun, iye, 3:13) %>%
olutọju :: awọn orukọ mimọ () %>%
mutate (odun = as. nomba (okun :: str_sub (odun, 1,4))))
write_csv (gdp_tidy, "./data/gdp_tidy.csv)
Awọn histogram ti ere idaraya
Ṣiṣẹda wọn nilo awọn ipele meji:
- Ṣiṣeto eto pipe ti awọn histogram gangan ni lilo ggplot2.
- Animate histograms aimi pẹlu awọn aye ti o fẹ nipa lilo ganimate.
Igbesẹ ikẹhin ni lati ṣe ere idaraya ni ọna kika ti o fẹ, pẹlu GIF tabi MP4.
Awọn ile-ikawe ikojọpọ
- ile-ikawe (tidyverse)
- ile-ikawe (ganimate)
Isakoso data
Ni igbesẹ yii, o nilo lati ṣe àlẹmọ data lati gba awọn orilẹ-ede 10 ti o ga julọ fun ọdun kọọkan. Jẹ ki a ṣafikun ọpọlọpọ awọn ọwọn ti yoo gba wa laaye lati ṣafihan arosọ kan fun histogram.
gdp_tidy <- read_csv("./data/gdp_tidy.csv")
gdp_ti a ṣe <- gdp_tidy %>%
ẹgbẹ_nipa(odun) %>%
# Awọn * 1 jẹ ki o ṣee ṣe lati ni awọn ipo ti kii ṣe odidi lakoko sisun
mutate (ipo = ipo (-iye),
Value_rel = iye/iye[ipo==1],
Value_lbl = lẹẹ0("",yika(iye/1e9)))%>%
ẹgbẹ_nipasẹ(orukọ_orilẹ-ede) %>%
àlẹmọ (ipo <=10) %>%
kojọpọ()
Ilé aimi histograms
Ni bayi ti a ni package data ni ọna kika ti a beere, a bẹrẹ iyaworan awọn histogram aimi. Alaye ipilẹ - awọn orilẹ-ede 10 oke pẹlu GDP ti o pọju fun aarin akoko ti o yan. A ṣẹda awọn aworan fun ọdun kọọkan.
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"))
Ṣiṣẹda awọn igbero lilo ggplot2 rọrun pupọ. Gẹgẹbi o ti le rii ni apakan koodu loke, awọn aaye bọtini pupọ wa pẹlu iṣẹ akori (). Wọn jẹ pataki ki gbogbo awọn eroja ṣe igbesi aye laisi awọn iṣoro. Diẹ ninu wọn le ma ṣe afihan ti o ba jẹ dandan. Apeere: Awọn laini akoj inaro nikan ati awọn arosọ ni a fa, ṣugbọn awọn akọle ipo ati ọpọlọpọ awọn paati miiran ni a yọkuro lati agbegbe naa.
iwara
Awọn bọtini iṣẹ nibi ni transition_states (), o stitches papo lọtọ aimi awọn aworan. view_follow () ti lo lati fa awọn ila akoj.
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")
Rendering
Ni kete ti a ti ṣẹda iwara ati fipamọ sinu ohun idanilaraya, o to akoko lati mu ṣiṣẹ ni lilo iṣẹ animate (). Oluṣe ti a lo ninu animate() le yatọ si da lori iru faili ti o wu jade ti o nilo.
GIF
# For GIF
animate (anim, 200, fps = 20, iwọn = 1200, iga = 1000,
renderer = gifski_renderer ("gganim.gif")
MP4
# For MP4
animate (anim, 200, fps = 20, iwọn = 1200, iga = 1000,
renderer = ffmpeg_renderer ()) -> fun_mp4
anim_save ("animation.mp4", iwara = for_mp4)
Esi

Bi o ti le ri, ko si ohun idiju. Gbogbo ise agbese wa ninu , o le lo bi o ṣe rii pe o yẹ.
Skillbox ṣe iṣeduro:
- Ọdun meji iṣẹ ikẹkọ .
- Ẹkọ ori ayelujara .
- Eko odun to wulo .
orisun: www.habr.com
