Անիմացիոն գծապատկերները, որոնք կարող են ուղղակիորեն տեղադրվել ցանկացած կայքի գրառման մեջ, գնալով ավելի տարածված են դառնում: Նրանք ցուցադրում են որոշակի ժամանակի ընթացքում ցանկացած բնութագրերի փոփոխությունների դինամիկան և դա անում են հստակ: Տեսնենք, թե ինչպես կարելի է դրանք ստեղծել՝ օգտագործելով R և ընդհանուր փաթեթները:
Այս երկուսը չափազանց անհրաժեշտ են։ Բացի այդ, կպահանջվի կոկիկ, դռնապան և կշեռք՝ տվյալները կառավարելու, զանգվածը մաքրելու և համապատասխան ձևաչափի համար:
Տվյալներ
Բնօրինակ տվյալների բազան, որը մենք կօգտագործենք այս նախագծում, ներբեռնված է Համաշխարհային բանկի կայքից: Այստեղ են - Համաշխարհային բանկի տվյալներ. Նույն տվյալները, եթե պատրաստի կարիք ունեք, կարելի է ներբեռնել նախագծի թղթապանակներ.
Ի՞նչ տեղեկատվություն է սա: Ընտրանքը պարունակում է երկրների մեծ մասի ՀՆԱ-ի արժեքը մի քանի տարիների ընթացքում (2000-ից մինչև 2017 թվականը):
Տվյալների մշակում
Մենք կօգտագործենք ստորև տեղադրված կոդը՝ անհրաժեշտ տվյալների ձևաչափը պատրաստելու համար: Մենք մաքրում ենք սյունակների անունները, թվերը վերածում թվային ձևաչափի և տվյալները փոխակերպում հավաքում() ֆունկցիայի միջոցով։ Մենք պահպանում ենք այն ամենը, ինչ ստացվել է gdp_tidy.csv-ում՝ հետագա օգտագործման համար:
Փաստացի հիստոգրամների ամբողջական փաթեթի գծագրում՝ օգտագործելով ggplot2:
Անիմացե՛ք ստատիկ հիստոգրամները ցանկալի պարամետրերով՝ օգտագործելով gganimate:
Վերջնական քայլը անիմացիան ցանկալի ձևաչափով պատրաստելն է, ներառյալ GIF կամ MP4:
Գրադարանների բեռնում
գրադարան (tidyverse)
գրադարան (gganimate)
Տվյալների կառավարում
Այս քայլում դուք պետք է զտեք տվյալները՝ յուրաքանչյուր տարվա լավագույն 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()
Ստատիկ հիստոգրամների կառուցում
Այժմ, երբ մենք ունենք անհրաժեշտ ձևաչափով տվյալների փաթեթ, մենք սկսում ենք ստատիկ հիստոգրամներ նկարել: Հիմնական տեղեկատվություն. ընտրված ժամանակային ընդմիջումով առավելագույն ՀՆԱ-ով լավագույն 10 երկրները: Մենք ստեղծում ենք գրաֆիկներ յուրաքանչյուր տարվա համար:
ggplot2-ի միջոցով հողամասեր ստեղծելը շատ պարզ է: Ինչպես տեսնում եք վերևի կոդի բաժնում, կան մի քանի հիմնական կետեր theme() ֆունկցիայի հետ: Նրանք անհրաժեշտ են, որպեսզի բոլոր տարրերը կենդանանան առանց խնդիրների: Անհրաժեշտության դեպքում դրանցից մի քանիսը կարող են չցուցադրվել: Օրինակ. Միայն ուղղահայաց ցանցի գծերն ու լեգենդները գծված են, բայց առանցքների վերնագրերը և մի քանի այլ բաղադրիչներ հեռացվում են տարածքից:
անիմացիա
Հիմնական ֆունկցիան այստեղ 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()-ում օգտագործվող մատուցիչը կարող է տարբեր լինել՝ կախված պահանջվող ելքային ֆայլի տեսակից: