دليل احتراف Bokeh CLI في أوبونتو لتصور البيانات

نظرة عامة

تُعد مكتبة Bokeh إحدى أقوى أدوات بايثون لبناء رسومات بيانية متطورة، وتتيح واجهة سطر الأوامر (CLI) الخاصة بها مرونة فائقة لإنجاز مهام العرض دون الحاجة لكتابة برمجيات معقدة لكل حالة. يستعرض هذا الدليل العملي كيفية تطويع أوامر Bokeh الأساسية على بيئة Ubuntu، بدءاً من تصدير المخططات كصفحات HTML مستقلة أو هياكل JSON، ووصولاً إلى استضافة لوحات تحكم تفاعلية متكاملة عبر خادم الويب المدمج.

1. تجهيز بيئة العمل واستكشاف إعدادات النظام (bokeh info)

نستهل خطواتنا العملية بتحديث مستودعات الحزم وتثبيت مكتبة Bokeh مع مدير حزم بايثون على بيئة Ubuntu لضمان توفر كافة التبعيات الضرورية.

تحديث المستودعات وتثبيت حزم python3-bokeh وpip

يُوفر الأمر bokeh info تقريراً شاملاً حول بيئة التشغيل، متضمناً رقم إصدار الحزمة المثبتة، إصدار بايثون النشط، ومكتبات الواجهة الخلفية المدعومة.
⚙️ [أبرز المعاملات والوظائف الأساسية]

info : يعرض ملخصاً تفصيلياً لبيانات التثبيت، والتبعيات البرمجية، ومتغيرات البيئة المحيطة.
serve : يُطلق خادم Bokeh المسؤول عن استضافة لوحات التحكم وتطبيقات الويب التفاعلية.
html : يُحول سكريبتات بايثون إلى ملفات HTML قائمة بذاتها يمكن تصفحها بسهولة.
json : يُفرغ كائنات المخططات وبياناتها في بنية JSON مسلسلة لمعالجتها برمجياً.
secret : يُولد مفتاح تشفير عشوائياً لتأمين جلسات الاتصال عبر الخادم.

التحقق من مواصفات بيئة تشغيل Bokeh عبر الأمر bokeh info

2. تصدير المخططات إلى صفحات HTML قائمة بذاتها (bokeh html)

لتنظيم ملفات التدريب العملي، ننشئ دليلاً مخصصاً للمشروع في المسار الرئيسي وننتقل مباشرة إليه عبر الأمر mkdir -p ~/bokeh-demo && cd ~/bokeh-demo.

إنشاء مسار العمل bokeh-demo والانتقال إليه

نقوم الآن بصياغة سكريبت بايثون تجريبي باسم plot_sample.py يهدف إلى رسم مخطط نقطي (Scatter plot) تمهيداً لتحويله إلى ملف ويب مستقل.

إنشاء سكريبت بايثون لرسم بياني نقطي باسم plot_sample.py

يتولى الأمر bokeh html plot_sample.py قراءة السكريبت وتحويله إلى مستند HTML ثابت ومتكامل، بحيث يمكن تشغيله واستعراضه في أي متصفح دون الحاجة لوجود بيئة بايثون خلفية.

تحويل كود بايثون إلى صفحة ويب مستقلة باستخدام bokeh html

للتحقق من إتمام عملية التصدير ومطالعة حجم الملف الناتج وبياناته الوصفية، ننفذ الأمر ls -lh plot_sample.html.

معاينة الملف المولد plot_sample.html والتأكد من حجمه

3. استخراج هيكل المخطط وبياناته بصيغة JSON المسلسلة (bokeh json)

عند الحاجة لتمرير عناصر الرسم إلى واجهات أمامية أو تطبيقات خارجية تعتمد على مكتبات مثل BokehJS، يمكن تشغيل الأمر bokeh json plot_sample.py > plot_output.json؛ حيث يقوم بتسلسل جميع كائنات التخطيط ومصادر البيانات وحفظها مباشرة داخل ملف JSON منظم.

تصدير بنية الرسم البياني إلى ملف JSON باستخدام bokeh json

للتأكد من صحة التنسيق الهيكلي ومراجعة المخطط البياني للبيانات المسلسلة، نستعرض السطور العشرين الأولى عبر الأمر head -n 20 plot_output.json.
تُمكّننا هذه الخطوة من فحص معرّفات النماذج الرئيسية (Model IDs)، وخصائص التصيير، ومصفوفات البيانات للتأكد من اكتمال التصدير دون أخطاء.

فحص أسطر ملف plot_output.json للتأكد من بنية البيانات

4. تشغيل خادم لوحات البيانات التفاعلية الحية (bokeh serve)

لإنشاء تطبيق تفاعلي يستجيب لتحديثات البيانات في الوقت الفعلي، نكتب سكريبت server_app.py، حيث نعتمد على الدالة curdoc().add_root() لربط مخطط الخط البياني بوثيقة الجلسة النشطة كعنصر جذري.

كتابة سكريبت server_app.py لربط المخطط بخادم Bokeh الحَي

يقوم الأمر timeout 5s bokeh serve server_app.py --port 5006 --allow-websocket-origin="*" بتشغيل خادم Bokeh واستضافة تطبيق بايثون عبر الويب.
يُحدد الخيار --port 5006 منفذ الاستماع المخصص للتطبيق، بينما يمنح الخيار --allow-websocket-origin="*" تصريحاً شاملاً لاتصالات بروتوكول WebSocket لتيسير الوصول من مختلف مصادر الشبكة.

استضافة تطبيق الويب وتشغيل خادم bokeh serve على المنفذ 5006

قدم هذا الدليل لمحة تطبيقية شاملة حول كيفية استغلال إمكانيات واجهة سطر أوامر Bokeh CLI المتنوعة ضمن نظام Ubuntu.
يمكنك الآن دمج هذه الأوامر ضمن خطوط المعالجة البرمجية الخاصة بك لبناء ونشر لوحات بيانات وتحليلات بصرية تفاعلية بكل سلاسة وموثوقية.