موقع د. عزيز الجعيد
  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

علم البيانات والذكاء الاصطناعي

  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

السرد القصصي باستخدام مكتبة (pynarrative) في بايثون

19/04/2025 | ذكاء الأعمال، لغة البرمجة بايثون

مكتبة (pynarrative)  هي حزمة في بايثون تساعد على إضافة سرد قصصي للتحليلات بطريقة سهلة ومؤتمتة من خلال ربط التعليقات التوضيحية والارشادرات التفاعلية بالتغير في البيانات. لتوضيح طريقة عمل هذه الحزمة سوف نقوم في البداية بتفعيل المكتبات المطلوبة كما يلي:

In:
import altair as alt
import pandas as pd
import pynarrative as pn

كذلك سوف نقوم بتحميل البيانات (Monthly_Sales_2024)، واستيرادها كما في الكود:

In:
sales_data = pd.read_csv('Monthly_Sales_2024.csv')
sales_data['Date'] = pd.to_datetime(sales_data['Date'])
print(sales_data.head())
Out:
        Date  Sales                               Note
0 2024-01-01    738                                NaN
1 2024-02-01    907                                NaN
2 2024-03-01    939                                NaN
3 2024-04-01    865  Sales drop due to TAX regulations
4 2024-05-01    976                                NaN

بعد ذلك سوف يتم تصوير البيانات وإضافة السرد القصصي عليها بشكل مباشر من خلال البيانات كما يلي:

In:
# تصوير البيانات
chart = pn.Story(sales_data).mark_line().encode(
    x=alt.X('Date:T', title='Date', axis=alt.Axis(labelFontSize=12, titleFontSize=14)),
    y=alt.Y('Sales:Q', title='Sales ($)', scale=alt.Scale(domain=[600, sales_data['Sales'].max() + 50]),
            axis=alt.Axis(labelFontSize=12, titleFontSize=14))
)

# إضافة السرد القصصي 
filtered_sales_data = sales_data[sales_data['Note'].notna()]
for i in filtered_sales_data.index:
    chart = chart.add_annotation(
        filtered_sales_data['Date'][i], filtered_sales_data['Sales'][i], filtered_sales_data['Note'][i],
        arrow_direction='left', 
        arrow_dx=25, 
        arrow_dy=-1, 
        arrow_color='red', 
        arrow_size=30,
        label_color='red',
        label_dx=45,
        label_dy=-5,
        label_size=14,
        show_point=True
    )

chart.render()

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

20/02/2025 | ذكاء الأعمال، لغة البرمجة بايثون

ماهي حزمة vizro ؟

حزمة  vizro هي إطار عمل مفتوح المصدر لبناء داشبورد او تطبيق ويب للتحليلات التفاعلية بطريقة سهلة وفعالة، وذلك من خلال توظيف حزم برمجية أخرى في بايثون مثل Dash  و Pydantic، مما يساعد على إنشاء لوحات تحليلات وتصوير بيانات تفاعلية متقدمة. حيث أن  vizro تقوم بأتمتة العديد من المهام المتعلقة ببناء تطبيق الويب وتصميم واجهة المستخدم بأسلوب مرن يساعد في حفظ الوقت والجهد.

يتضمن تكوين التطبيق الإعدادات التالية:

  • المكونات (components): إنشاء المخططات والجداول وواجهات الإدخال/الإخراج.
  • عناصر التحكم (controls):  إنشاء عوامل التصفية ومدخلات البارامترات ووحدات التحكم في الإجراءات المخصصة.
  • الصفحات والمخططات والتنقل (pages, layouts and navigation): إنشاء صفحات متعددة، مع مخططات قابلة للتخصيص والتنقل المرن عبرها.
  • الإجراءات والتفاعلات (actions and interactions): إنشاء تفاعلات بين المخططات، واستخدام إجراءات محددة مسبقًا أو مخصصة (مثل التصدير).

 

تطوير تطبيق تحليلات تفاعلية

سوف نقوم بتطوير تطبيق تحليلات تفاعلية لتحليل البيانات  التالية:

والتي يمكن تحميل نسخة منها من خلال الرابط.

بعد ذلك لتطوير تطبيق التحليلات (ذكاء الأعمال) التفاعلي يمكن أن نتبع الخطوات التالية:

  1. تفعيل المكتبات المطلوبة لبناء التطبيق
In:
import vizro.plotly.express as px
from vizro import Vizro
import vizro.models as vm

 

  1. استيراد البيانات
In:
import seaborn as sns
df = sns.load_dataset("healthexp")
  1. تطوير الصفحات والمخططات والتنقل
In:
# pages, layouts and navigation:
page = vm.Page(
    title="My dashboard",
    # components:
    components=[
        vm.Graph(id="scatter_chart", figure=px.scatter(df, 
                 x="Spending_USD", y="Life_Expectancy", 
                 color="Country")),
        vm.Graph(id="hist_chart", figure=px.histogram(df, 
                 x="Country")),
    ],
    # controls:
    controls=[
        vm.Filter(column="Country", 
                 selector=vm.Dropdown(value=["ALL"])),
    ],
)
  1. تشغيل التطبيق

يمكن الوصول لتطبيق التحليلات التفاعلية من خلال:

http://127.0.0.1:8050

 

وذلك كما في الشكل التالي:

 

د. عزيز عوض الله الجعيد
دكتوراه في الإحصاء، عالم بيانات، مبرمج، مهتم في التحليل المتقدم، والبيانات الضخمة والذكاء الاصطناعي، لمزيد من المعلومات أضغط هنا

  • YouTube
جميع الحقوق محفوظة © موقع د. عزيز