جدول المحتويات:

لوحة معلومات COVID19 على خريطة العالم (باستخدام بايثون): 16 خطوة
لوحة معلومات COVID19 على خريطة العالم (باستخدام بايثون): 16 خطوة

فيديو: لوحة معلومات COVID19 على خريطة العالم (باستخدام بايثون): 16 خطوة

فيديو: لوحة معلومات COVID19 على خريطة العالم (باستخدام بايثون): 16 خطوة
فيديو: كم من الوقت تحتاج لتعلم البرمجة 2024, شهر نوفمبر
Anonim
لوحة معلومات COVID19 على خريطة العالم (باستخدام Python)
لوحة معلومات COVID19 على خريطة العالم (باستخدام Python)

أعلم أن جميعنا تقريبًا يعرف معظم المعلومات حول COVID19.

وهذه التعليمات تتعلق بإنشاء خريطة فقاعية ، لرسم بيانات الوقت الحقيقي (للحالات) على خريطة العالم.

لمزيد من الراحة ، أضفت البرنامج إلى مستودع Github:

github.com/backshell/COVID19dashboard

اللوازم

لا توجد أي مستلزمات مطلوبة على هذا النحو وسنقوم بتنفيذ برنامج الكمبيوتر بالكامل من خلال GoogleColab Notebook. لذلك يجب أن يكون حساب gmail كافيًا للبدء به.

Colab Notebooks / Colaboratory هو مشروع بحثي من Google تم إنشاؤه للمساعدة في نشر تعليم وأبحاث التعلم الآلي. إنها بيئة دفتر ملاحظات Jupyter لا تتطلب أي إعداد للاستخدام وتعمل بالكامل في السحابة.

ولا يلزم التثبيت في جهازك.

الخطوة 1: فهم عملية الواجهة الخلفية (قاعدة البيانات)

تجلب معظم البرامج البيانات من الواجهة الخلفية ويتم تنسيق الناتج الناتج ونشره في الواجهة الأمامية. وبالنسبة لهذا البرنامج بالذات ، سنطلب بيانات COVID19 الحقيقية.

محرك G. W. C. تنشر مدرسة وايتنج للهندسة إحصائيات COVID19 من خلال حسابها على Github:

github.com/CSSEGISandData

من البداية حتى تاريخه ، يتم نشر إحصاءات COVID19 حسب البلد في المستودع.

لذلك سنستخدم الملفات المنسقة بتنسيق CSV. (الصفوف المقسمة للبلدان) ونرسم البيانات على خريطة العالم.

الخطوة 2: حزم / مكتبات Python المستخدمة في البرنامج

فيما يلي قائمة بحزم ومكتبات Python ، التي سنستخدمها. اسمحوا لي أن أقدم لمحة عامة عن الغرض من كل منهم.

عديم:

NumPy هي مكتبة للغة برمجة Python ، تضيف دعمًا للمصفوفات والمصفوفات الكبيرة متعددة الأبعاد ، جنبًا إلى جنب مع مجموعة كبيرة من الوظائف الرياضية عالية المستوى للعمل على هذه المصفوفات.

الباندا:

الباندا هي مكتبة برامج مكتوبة للغة برمجة بايثون لمعالجة البيانات وتحليلها.

matplotlib.pyplot:

تم تصميم pyplot بشكل أساسي للمخططات التفاعلية والحالات البسيطة لإنشاء الحبكة البرمجية

مؤامرة. التعبير:

Plotly Express هي مكتبة تصور بيثون جديدة عالية المستوى. بناء جملة بسيط للمخططات المعقدة.

فوليوم:

يُسهل تطبيق folium تصور البيانات التي تم التلاعب بها في Python على خريطة المنشورات التفاعلية.

plotly.graph_objects:

توجد حزمة Python المؤامرة لإنشاء الأشكال الرسومية ومعالجتها وعرضها (مثل المخططات والمؤامرات والخرائط والمخططات) التي يتم تمثيلها بواسطة هياكل البيانات التي يشار إليها أيضًا باسم الأشكال.

بحار:

Seaborn هي مكتبة تصور بيانات Python تعتمد على matplotlib. يوفر واجهة عالية المستوى لرسم رسومات إحصائية جذابة وغنية بالمعلومات.

ipywidgets:

ipywidgets هي أدوات تفاعلية لـ HTML لأجهزة الكمبيوتر المحمولة Jupyter و JupyterLab و IPython kernel. تصبح أجهزة الكمبيوتر المحمولة حية عند استخدام عناصر واجهة مستخدم تفاعلية.

تثبيت هذه الحزم غير مطلوب لأننا سنعمل هذا البرنامج بالكامل في Google Colab Notebook (دعنا نحتفظ به كـ colab طوال هذه التعليمات).

الخطوة 3: إعداد محرك الأقراص الخاص بك ، لاستخدام Colab

إعداد محرك الأقراص الخاص بك ، لاستخدام Colab
إعداد محرك الأقراص الخاص بك ، لاستخدام Colab
إعداد محرك الأقراص الخاص بك ، لاستخدام Colab
إعداد محرك الأقراص الخاص بك ، لاستخدام Colab

في Drive ، أنشئ مجلدًا لدفاتر ملاحظاتك.

من الناحية الفنية ، هذه الخطوة ليست ضرورية تمامًا إذا كنت تريد فقط بدء العمل في Colab. ومع ذلك ، نظرًا لأن Colab يعمل خارج محرك الأقراص ، فليس من الجيد تحديد المجلد الذي تريد العمل فيه. يمكنك القيام بذلك عن طريق الانتقال إلى Google Drive والنقر على "جديد" ثم إنشاء مجلد جديد.

ثم يمكنك اختيار إنشاء colabnotebook هنا أو البدء في العمل مباشرة في colab وربط المجلد في محرك الأقراص ، والذي تم إنشاؤه لعمل colab.

هذه ممارسة جيدة ، وإلا فقد يبدو الكولاب الذي نصنعه فوضويًا في قيادتنا.

الخطوة 4: نظرة عامة على البرنامج

في هذا البرنامج / الكمبيوتر الدفتري ، سننشئ ما يلي لـ COVID-19:

  • قائمة الدول حسب عدد الحالات
  • إجمالي الحالات على خريطة العالم

الخطوة 5: لوحة معلومات COVID-19 | الجزء الأول

لوحة القيادة COVID-19 | الجزء الأول
لوحة القيادة COVID-19 | الجزء الأول

يمكنك استخدام المستقبل للمساعدة في نقل الكود الخاص بك من Python 2 إلى Python 3 اليوم - ولا يزال يعمل على Python 2.

إذا كان لديك بالفعل كود Python 3 ، فيمكنك بدلاً من ذلك استخدام المستقبل لتقديم توافق Python 2 مع عدم وجود أي عمل إضافي تقريبًا.

يدعم Future إعادة تنظيم المكتبة القياسية (PEP 3108) عبر إحدى الآليات المتعددة ، مما يسمح بالوصول إلى معظم وحدات المكتبة القياسية المنقولة تحت أسماء ومواقع Python 3 في Python 2.

الخطوة 6: لوحة معلومات COVID-19 | الجزء 2

لوحة القيادة COVID-19 | الجزء 2
لوحة القيادة COVID-19 | الجزء 2

تقوم وظيفة التفاعل (ipywidgets.interact) تلقائيًا بإنشاء عناصر تحكم في واجهة المستخدم (UI) لاستكشاف التعليمات البرمجية والبيانات بشكل تفاعلي. إنها أسهل طريقة للبدء في استخدام أدوات IPython.

الخطوة 7: لوحة معلومات COVID-19 | الجزء 3

لوحة القيادة COVID-19 | الجزء 3
لوحة القيادة COVID-19 | الجزء 3

يعرض display_html تمثيلات HTML للكائن. أي أنه يبحث عن طرق العرض المسجلة ، مثل _repr_html_ ، ويستدعيها ، ويعرض النتيجة ، إن وجدت.

الخطوة 8: لوحة معلومات COVID-19 | الجزء الرابع

لوحة القيادة COVID-19 | الجزء الرابع
لوحة القيادة COVID-19 | الجزء الرابع

يتم استيراد قائمة الحزم (كما هو موضح في الخطوة 2) إلى البرنامج.

الخطوة 9: لوحة معلومات COVID-19 | الجزء الخامس

death_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_deaths_global.csv')

Confirm_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv')

Recoveryed_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_recovered_global.csv')

country_df = pd.read_csv ('https://raw.githubusercontent.com/CSSEGISandData/COVID-19/web-data/data/cases_country.csv')

كما هو موضح في الخطوة 1 ، قراءة البيانات كملف.csv من المستودع.

الخطوة 10: لوحة معلومات COVID-19 | الجزء 6

لوحة القيادة COVID-19 | الجزء 6
لوحة القيادة COVID-19 | الجزء 6

سنعيد تسمية أسماء الأعمدة df إلى أحرف صغيرة

الخطوة 11: لوحة معلومات COVID-19 | الجزء السابع

لوحة القيادة COVID-19 | الجزء السابع
لوحة القيادة COVID-19 | الجزء السابع

سنقوم بتغيير المقاطعة / الولاية إلى دولة ومن دولة / منطقة إلى دولة

الخطوة 12: لوحة معلومات COVID-19 | الجزء الثامن

لوحة القيادة COVID-19 | الجزء الثامن
لوحة القيادة COVID-19 | الجزء الثامن

سنحسب العدد الإجمالي للحالات المؤكدة والوفيات والمتعافية.

الخطوة 13: لوحة معلومات COVID-19 | الجزء 9

لوحة القيادة COVID-19 | الجزء 9
لوحة القيادة COVID-19 | الجزء 9
لوحة القيادة COVID-19 | الجزء 9
لوحة القيادة COVID-19 | الجزء 9

سنعرض إجمالي الإحصائيات بتنسيق HTML ، حيث قمنا باستيراد مكتبات معينة في الخطوة 7 مسبقًا على النحو التالي:

من عرض استيراد IPython.core.display ، HTML

الخطوة 14: قائمة البلدان (Top10) حسب عدد الحالات | لوحة القيادة COVID-19

قائمة الدول (Top10) حسب عدد الحالات | لوحة القيادة COVID-19
قائمة الدول (Top10) حسب عدد الحالات | لوحة القيادة COVID-19
قائمة الدول (Top10) حسب عدد الحالات | لوحة القيادة COVID-19
قائمة الدول (Top10) حسب عدد الحالات | لوحة القيادة COVID-19

fig = go. FigureWidget (التخطيط = go. Layout ())

ترجع الدالة FigureWidget كائن FigureWidget فارغ مع محوري x و y الافتراضيين. تحتوي أدوات Jupyter التفاعلية على سمة تخطيط تعرض عددًا من خصائص CSS التي تؤثر على كيفية تخطيط عناصر واجهة المستخدم.

PDD DataFrame

يُنشئ إطار بيانات باستخدام القاموس ، بثلاث خلفيات ملونة لتعبئة الناتج.

def show_latest_cases (TOP)

يفرز القيم بترتيب تنازلي مؤكد.

تفاعل (show_latest_cases، TOP = '10 ')

تقوم وظيفة التفاعل (ipywidgets.interact) تلقائيًا بإنشاء عناصر تحكم في واجهة المستخدم (UI) لاستكشاف التعليمات البرمجية والبيانات بشكل تفاعلي.

ipywLayout = widgets. Layout (الحدود = "أخضر 2 بكسل خالص")

ينشئ حدًا بخطوط عرض 2 بكسل من اللون الأخضر ، لعرض الناتج.

الخطوة 15: إجمالي الحالات على خريطة العالم | لوحة القيادة COVID-19

إجمالي الحالات على خريطة العالم | لوحة القيادة COVID-19
إجمالي الحالات على خريطة العالم | لوحة القيادة COVID-19
إجمالي الحالات على خريطة العالم | لوحة القيادة COVID-19
إجمالي الحالات على خريطة العالم | لوحة القيادة COVID-19

world_map = folium. Map (الموقع = [11 ، 0] ، البلاط = "cartodbpositron" ، zoom_start = 2 ، max_zoom = 6 ، min_zoom = 2)

Folium هي أداة تجعلك تبدو وكأنك رسم خرائط بينما يتم تنفيذ جميع الأعمال في النهاية الخلفية ، وهي عبارة عن غلاف Python لأداة تسمى المنشور. نحن نعطيها بشكل أساسي الحد الأدنى من الإرشادات ، JS يقوم بالكثير من العمل في الخلفية ونحصل على بعض الخرائط الرائعة جدًا. إنها أشياء رائعة. من أجل الوضوح ، تسمى الخريطة تقنيًا "خريطة المنشورات". الأداة التي تسمح لك بتسميتها في Python تسمى "Folium".

يجعل Folium من السهل تصور البيانات التي تم التلاعب بها في Python على خريطة المنشورات التفاعلية. إنه يمكّن كلاً من ربط البيانات بالخريطة من أجل التصورات التصورية وكذلك تمرير تصورات Vincent / Vega كعلامات على الخريطة.

لـ i في النطاق (0 ، len (المؤكدة_ pdf))

في حلقة for ، سنحصل على جميع الحالات المؤكدة من صياغة الخطوة 9.

فوليوم

نقوم بإنشاء خريطة فقاعية باستخدام الورقة ، دائرة () لإضافة الدوائر بشكل تكراري.

location = [definitely_df.iloc ['lat'] ،irmed_df.iloc ['long'] ،

من pdf المؤكد للحالات المؤكدة من الخطوة 5 ، نستخرج قيم خطوط الطول والعرض المقابلة لبيانات كل موقع / بلد.

نصف القطر = (int ((np.log (irmed_df.iloc [i، -1] +1.00001))) + 0.2) * 50000 ،

إنشاء كائن نصف قطر لرسم دوائر الفقاعة على خريطة العالم عبر البلدان.

اللون = "أحمر" ، ملء_لون = "نيلي" ،

جعل مخطط دائرة الفقاعة باللون الأحمر والمنطقة الداخلية كالنيلي.

وأخيرًا رسم الدوائر على خريطة العالم باستخدام كائن تلميح الأدوات.

الخطوة 16: النتيجة

النتيجة!
النتيجة!
النتيجة!
النتيجة!

يظهر المرفقات:

  1. قائمة الدول حسب عدد الحالات
  2. إجمالي الحالات على خريطة العالم

موصى به: