نمودارهای میله ای متحرکی که می توانند مستقیماً در یک پست در هر وب سایتی جاسازی شوند، به طور فزاینده ای محبوب می شوند. آنها پویایی تغییرات در هر ویژگی را در یک زمان معین نشان می دهند و این کار را به وضوح انجام می دهند. بیایید ببینیم که چگونه آنها را با استفاده از R و بسته های عمومی ایجاد کنیم.
این دو فوق العاده ضروری هستند. علاوه بر این، برای مدیریت دادهها، تمیز کردن آرایه و قالببندی مطابق با آن، به مرتب، سرایدار و ترازو نیاز است.
اطلاعات
مجموعه داده اصلی که در این پروژه استفاده خواهیم کرد از وب سایت بانک جهانی دانلود شده است. آن ها اینجا هستند - داده های بانک جهانی. همان داده ها را، اگر به صورت آماده نیاز دارید، می توانید از آن دانلود کنید پوشه های پروژه.
این چه نوع اطلاعاتی است؟ نمونه شامل ارزش تولید ناخالص داخلی اکثر کشورها برای چندین سال (از 2000 تا 2017) است.
پردازش داده ها
ما از کد ارسال شده در زیر برای تهیه فرمت داده های مورد نیاز استفاده خواهیم کرد. نام ستون ها را پاک می کنیم، اعداد را به فرمت عددی تبدیل می کنیم و داده ها را با استفاده از تابع collect() تبدیل می کنیم. ما هر چیزی را که در gdp_tidy.csv دریافت می شود برای استفاده بیشتر ذخیره می کنیم.
رسم مجموعه کاملی از هیستوگرام های واقعی با استفاده از ggplot2.
هیستوگرام های استاتیک را با پارامترهای دلخواه با استفاده از gananimate متحرک کنید.
مرحله آخر این است که انیمیشن را با فرمت دلخواه شامل GIF یا MP4 رندر کنید.
در حال بارگیری کتابخانه ها
کتابخانه (Tidyverse)
کتابخانه (گانیمیت)
مدیریت اطلاعات
در این مرحله، باید داده ها را فیلتر کنید تا 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() بسته به نوع فایل خروجی مورد نیاز می تواند متفاوت باشد.