أصبحت المخططات الشريطية المتحركة التي يمكن تضمينها مباشرةً في منشور على أي موقع ويب شائعة بشكل متزايد. يعرضون ديناميكيات التغييرات في أي خصائص خلال فترة زمنية معينة ويفعلون ذلك بوضوح. دعونا نرى كيفية إنشائها باستخدام R والحزم العامة.
وهذان أمران ضروريان للغاية. بالإضافة إلى ذلك، ستكون هناك حاجة إلى نظام Tidyverse وبواب وميزان لإدارة البيانات وتنظيف المصفوفة والتنسيق وفقًا لذلك.
معطيات
يتم تنزيل مجموعة البيانات الأصلية التي سنستخدمها في هذا المشروع من موقع البنك الدولي. ها هم - بيانات البنك الدولي. ويمكن تنزيل نفس البيانات، إذا كنت في حاجة إليها جاهزة، من مجلدات المشروع.
أي نوع من المعلومات هذا؟ تحتوي العينة على قيمة الناتج المحلي الإجمالي لمعظم البلدان لعدة سنوات (من عام 2000 إلى عام 2017).
معالجة البيانات
سوف نستخدم الكود المنشور أدناه لإعداد تنسيق البيانات المطلوب. نقوم بمسح أسماء الأعمدة، وتحويل الأرقام إلى تنسيق أرقام، وتحويل البيانات باستخدام وظيفة التجميع (). نقوم بحفظ كل ما يتم استلامه في gdp_tidy.csv لاستخدامه مرة أخرى.
رسم مجموعة كاملة من الرسوم البيانية الفعلية باستخدام ggplot2.
قم بتحريك الرسوم البيانية الثابتة مع المعلمات المطلوبة باستخدام gganimate.
الخطوة الأخيرة هي عرض الرسوم المتحركة بالتنسيق المطلوب، بما في ذلك 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")
استدعاء
بمجرد إنشاء الرسوم المتحركة وتخزينها في كائن الرسوم المتحركة، فقد حان الوقت لعرضها باستخدام وظيفة animate(). يمكن أن يكون العارض المستخدم في animate() مختلفًا اعتمادًا على نوع ملف الإخراج المطلوب.