ಆರ್ ಬಳಸಿ ಅನಿಮೇಟೆಡ್ ಹಿಸ್ಟೋಗ್ರಾಮ್‌ಗಳನ್ನು ರಚಿಸಿ

ಆರ್ ಬಳಸಿ ಅನಿಮೇಟೆಡ್ ಹಿಸ್ಟೋಗ್ರಾಮ್‌ಗಳನ್ನು ರಚಿಸಿ

ಯಾವುದೇ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ಪೋಸ್ಟ್‌ನಲ್ಲಿ ನೇರವಾಗಿ ಎಂಬೆಡ್ ಮಾಡಬಹುದಾದ ಅನಿಮೇಟೆಡ್ ಬಾರ್ ಚಾರ್ಟ್‌ಗಳು ಹೆಚ್ಚು ಜನಪ್ರಿಯವಾಗುತ್ತಿವೆ. ಅವರು ನಿರ್ದಿಷ್ಟ ಸಮಯದಲ್ಲಿ ಯಾವುದೇ ಗುಣಲಕ್ಷಣಗಳಲ್ಲಿನ ಬದಲಾವಣೆಗಳ ಡೈನಾಮಿಕ್ಸ್ ಅನ್ನು ಪ್ರದರ್ಶಿಸುತ್ತಾರೆ ಮತ್ತು ಇದನ್ನು ಸ್ಪಷ್ಟವಾಗಿ ಮಾಡುತ್ತಾರೆ. ಆರ್ ಮತ್ತು ಜೆನೆರಿಕ್ ಪ್ಯಾಕೇಜ್‌ಗಳನ್ನು ಬಳಸಿಕೊಂಡು ಅವುಗಳನ್ನು ಹೇಗೆ ರಚಿಸುವುದು ಎಂದು ನೋಡೋಣ.

ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ: ಪ್ರಾಯೋಗಿಕ ಕೋರ್ಸ್ "ಮೊದಲಿನಿಂದ ಪೈಥಾನ್ ಡೆವಲಪರ್".

ನಾವು ನೆನಪಿಸುತ್ತೇವೆ: ಎಲ್ಲಾ Habr ಓದುಗರಿಗೆ - Habr ಪ್ರೊಮೊ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಯಾವುದೇ ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಕೋರ್ಸ್‌ಗೆ ದಾಖಲಾಗುವಾಗ 10 ರೂಬಲ್ ರಿಯಾಯಿತಿ.

ಪ್ಯಾಕೇಜುಗಳು

ನಮಗೆ R ನಲ್ಲಿ ಪ್ಯಾಕೇಜ್‌ಗಳು ಬೇಕಾಗುತ್ತವೆ:

ಈ ಎರಡು ಅತ್ಯಂತ ಅವಶ್ಯಕ. ಹೆಚ್ಚುವರಿಯಾಗಿ, ಅಚ್ಚುಕಟ್ಟಾದ, ದ್ವಾರಪಾಲಕ ಮತ್ತು ಮಾಪಕಗಳು ಡೇಟಾವನ್ನು ನಿರ್ವಹಿಸಲು, ಅರೇ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಲು ಮತ್ತು ಅದಕ್ಕೆ ಅನುಗುಣವಾಗಿ ಫಾರ್ಮ್ಯಾಟ್ ಮಾಡಲು ಅಗತ್ಯವಿರುತ್ತದೆ.

ಡೇಟಾ

ಈ ಯೋಜನೆಯಲ್ಲಿ ನಾವು ಬಳಸುವ ಮೂಲ ಡೇಟಾಸೆಟ್ ಅನ್ನು ವಿಶ್ವ ಬ್ಯಾಂಕ್ ವೆಬ್‌ಸೈಟ್‌ನಿಂದ ಡೌನ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ. ಇಲ್ಲಿ ಅವರು - ವಿಶ್ವಬ್ಯಾಂಕ್ ಡೇಟಾ. ಅದೇ ಡೇಟಾ, ನಿಮಗೆ ರೆಡಿಮೇಡ್ ಅಗತ್ಯವಿದ್ದರೆ, ಡೌನ್‌ಲೋಡ್ ಮಾಡಬಹುದು ಯೋಜನೆಯ ಫೋಲ್ಡರ್‌ಗಳು.

ಇದು ಯಾವ ರೀತಿಯ ಮಾಹಿತಿ? ಮಾದರಿಯು ಹಲವಾರು ವರ್ಷಗಳವರೆಗೆ (2000 ರಿಂದ 2017 ರವರೆಗೆ) ಹೆಚ್ಚಿನ ದೇಶಗಳ GDP ಮೌಲ್ಯವನ್ನು ಒಳಗೊಂಡಿದೆ.

ಮಾಹಿತಿ ಸಂಸ್ಕರಣೆ

ಅಗತ್ಯವಿರುವ ಡೇಟಾ ಸ್ವರೂಪವನ್ನು ತಯಾರಿಸಲು ನಾವು ಕೆಳಗೆ ಪೋಸ್ಟ್ ಮಾಡಲಾದ ಕೋಡ್ ಅನ್ನು ಬಳಸುತ್ತೇವೆ. ನಾವು ಕಾಲಮ್ ಹೆಸರುಗಳನ್ನು ತೆರವುಗೊಳಿಸುತ್ತೇವೆ, ಸಂಖ್ಯೆಗಳನ್ನು ಸಂಖ್ಯೆ ಸ್ವರೂಪಕ್ಕೆ ತಿರುಗಿಸುತ್ತೇವೆ ಮತ್ತು 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 ಅನ್ನು ಬಳಸಿಕೊಂಡು ನಿಜವಾದ ಹಿಸ್ಟೋಗ್ರಾಮ್‌ಗಳ ಸಂಪೂರ್ಣ ಸೆಟ್ ಅನ್ನು ರೂಪಿಸುವುದು.
  • ಗ್ಯಾನಿಮೇಟ್ ಅನ್ನು ಬಳಸಿಕೊಂಡು ಅಪೇಕ್ಷಿತ ಪ್ಯಾರಾಮೀಟರ್‌ಗಳೊಂದಿಗೆ ಸ್ಥಿರ ಹಿಸ್ಟೋಗ್ರಾಮ್‌ಗಳನ್ನು ಅನಿಮೇಟ್ ಮಾಡಿ.

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

ರೆಂಡರಿಂಗ್

ಅನಿಮೇಶನ್ ಅನ್ನು ರಚಿಸಿದ ಮತ್ತು ಅನಿಮ್ ವಸ್ತುವಿನಲ್ಲಿ ಸಂಗ್ರಹಿಸಿದ ನಂತರ, ಅನಿಮೇಟ್ () ಕಾರ್ಯವನ್ನು ಬಳಸಿಕೊಂಡು ಅದನ್ನು ನಿರೂಪಿಸುವ ಸಮಯ. ಅನಿಮೇಟ್() ನಲ್ಲಿ ಬಳಸಲಾದ ರೆಂಡರರ್ ಅಗತ್ಯವಿರುವ ಔಟ್‌ಪುಟ್ ಫೈಲ್‌ನ ಪ್ರಕಾರವನ್ನು ಅವಲಂಬಿಸಿ ವಿಭಿನ್ನವಾಗಿರಬಹುದು.

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 )

ಪರಿಣಾಮವಾಗಿ

ಆರ್ ಬಳಸಿ ಅನಿಮೇಟೆಡ್ ಹಿಸ್ಟೋಗ್ರಾಮ್‌ಗಳನ್ನು ರಚಿಸಿ

ನೀವು ನೋಡುವಂತೆ, ಏನೂ ಸಂಕೀರ್ಣವಾಗಿಲ್ಲ. ಸಂಪೂರ್ಣ ಯೋಜನೆಯು ಲಭ್ಯವಿದೆ ನನ್ನ GitHub, ನಿಮಗೆ ಸರಿಹೊಂದುವಂತೆ ನೀವು ಅದನ್ನು ಬಳಸಬಹುದು.

ಸ್ಕಿಲ್‌ಬಾಕ್ಸ್ ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ:

ಮೂಲ: www.habr.com

ಕಾಮೆಂಟ್ ಅನ್ನು ಸೇರಿಸಿ