شرح مكتبة Matplotlib: كيفية رسم البيانات في لغة بايثون
بعد تعلم مكتبتي NumPy و Pandas لتحليل البيانات، تأتي مرحلة عرض النتائج باستخدام Matplotlib. تعد هذه المكتبة الأساس في لغة بايثون لرسم المخططات البيانية، وتعتمد عليها معظم مكتبات الرسم الأخرى مثل Seaborn.
💡 خلاصة: مكتبة Matplotlib هي الأداة التي تحول الأرقام والبيانات الخام إلى رسوم بيانية واضحة ومفهومة.
أولاً: التثبيت والاستدعاء
# تثبيت المكتبة
pip install matplotlib
# استدعاء المكتبة في بداية البرنامج
import matplotlib.pyplot as plt
import numpy as np
pip install matplotlib
# استدعاء المكتبة في بداية البرنامج
import matplotlib.pyplot as plt
import numpy as np
ثانياً: أهم أنواع الرسوم البيانية مع أمثلة برمجية
1. المخطط الخطي Line Plot
يستخدم لعرض تغير القيم مع الزمن، مثل أسعار الأسهم أو درجات الحرارة أو الأرباح الشهرية.
x = [1, 2, 3, 4, 5]
y = [2, 5, 7, 10, 12]
plt.plot(x, y, marker='o', color='#013243', linewidth=2)
plt.title('Sales Growth Over 5 Months')
plt.xlabel('Month')
plt.ylabel('Sales in Millions')
plt.grid(True, alpha=0.3)
plt.show()
y = [2, 5, 7, 10, 12]
plt.plot(x, y, marker='o', color='#013243', linewidth=2)
plt.title('Sales Growth Over 5 Months')
plt.xlabel('Month')
plt.ylabel('Sales in Millions')
plt.grid(True, alpha=0.3)
plt.show()
الشكل 1: يوضح المخطط السابق نمو المبيعات خلال خمسة أشهر من 2 مليون إلى 12 مليون.
2. أشهر دوال مكتبة Matplotlib
| الدالة | نوع الرسم | حالة الاستخدام | مثال مختصر |
|---|---|---|---|
| plt.plot() | خطي Line | عرض البيانات المتصلة زمنياً | plt.plot(x, y) |
| plt.scatter() | تشتت Scatter | توضيح العلاقة بين متغيرين | plt.scatter(x, y) |
| plt.bar() | أعمدة Bar | المقارنة بين الفئات | plt.bar(names, values) |
| plt.hist() | مدرج تكراري | عرض توزيع البيانات | plt.hist(data, bins=10) |
| plt.pie() | دائري Pie | تمثيل النسب المئوية | plt.pie(sizes, labels=names) |
| plt.boxplot() | صندوق Box | اكتشاف القيم الشاذة | plt.boxplot(data) |
3. تخصيص المخططات: العناوين والشبكة والحفظ
| الأمر البرمجي | الوظيفة |
|---|---|
| plt.title('Chart Title', fontsize=16, color='#013243') | إضافة عنوان للمخطط |
| plt.xlabel('X Axis') | تسمية المحور الأفقي |
| plt.ylabel('Y Axis') | تسمية المحور العمودي |
| plt.legend(['Line 1', 'Line 2']) | إظهار مفتاح الرسم |
| plt.grid(True, alpha=0.3) | إظهار خطوط الشبكة الخلفية |
| plt.savefig('chart.png', dpi=300) | حفظ المخطط كصورة عالية الجودة |
🔥 ملاحظة تقنية: ينصح دائماً باستخدام الأمر
plt.figure(figsize=(10,6)) قبل بدء الرسم للتحكم في أبعاد الصورة. المقاس 10×6 مناسب للمواقع والبحوث العلمية.
ثالثاً: ثلاثة أمثلة عملية كاملة
المثال الأول: مقارنة المبيعات باستخدام مخطط الأعمدة
products = ['Phone', 'Laptop', 'Headphone', 'Watch']
sales_2024 = [150, 80, 200, 120]
sales_2025 = [180, 95, 240, 140]
x = np.arange(len(products))
width = 0.35
plt.figure(figsize=(10,6))
plt.bar(x - width/2, sales_2024, width, label='2024', color='#013243')
plt.bar(x + width/2, sales_2025, width, label='2025', color='#025d7a')
plt.xlabel('Product')
plt.ylabel('Sales Count')
plt.title('Sales Comparison 2024 vs 2025', color='#013243', fontsize=14)
plt.xticks(x, products)
plt.legend()
plt.show()
sales_2024 = [150, 80, 200, 120]
sales_2025 = [180, 95, 240, 140]
x = np.arange(len(products))
width = 0.35
plt.figure(figsize=(10,6))
plt.bar(x - width/2, sales_2024, width, label='2024', color='#013243')
plt.bar(x + width/2, sales_2025, width, label='2025', color='#025d7a')
plt.xlabel('Product')
plt.ylabel('Sales Count')
plt.title('Sales Comparison 2024 vs 2025', color='#013243', fontsize=14)
plt.xticks(x, products)
plt.legend()
plt.show()
الشكل 2: يقارن المخطط السابق مبيعات أربعة منتجات بين عامي 2024 و 2025.
المثال الثاني: توزيع الدرجات باستخدام المدرج التكراري
# توليد 1000 درجة عشوائية بمتوسط 75
grades = np.random.normal(75, 10, 1000)
plt.figure(figsize=(10,6))
plt.hist(grades, bins=20, color='#013243', edgecolor='white', alpha=0.8)
plt.title('Grades Distribution of 1000 Students', color='#013243', fontsize=14)
plt.xlabel('Grade')
plt.ylabel('Number of Students')
plt.axvline(grades.mean(), color='#ff6f00', linestyle='dashed', linewidth=2, label='Mean')
plt.legend()
plt.show()
grades = np.random.normal(75, 10, 1000)
plt.figure(figsize=(10,6))
plt.hist(grades, bins=20, color='#013243', edgecolor='white', alpha=0.8)
plt.title('Grades Distribution of 1000 Students', color='#013243', fontsize=14)
plt.xlabel('Grade')
plt.ylabel('Number of Students')
plt.axvline(grades.mean(), color='#ff6f00', linestyle='dashed', linewidth=2, label='Mean')
plt.legend()
plt.show()
الشكل 3: يعرض المدرج التكراري توزيع درجات 1000 طالب، مع توضيح المتوسط الحسابي بالخط المتقطع.
المثال الثالث: رسم أربعة مخططات في نافذة واحدة Subplots
x = np.linspace(0, 10, 100)
plt.figure(figsize=(12,8))
# المخطط الأول
plt.subplot(2, 2, 1)
plt.plot(x, np.sin(x), color='#013243')
plt.title('Sin')
# المخطط الثاني
plt.subplot(2, 2, 2)
plt.plot(x, np.cos(x), color='#025d7a')
plt.title('Cos')
# المخطط الثالث
plt.subplot(2, 2, 3)
plt.plot(x, np.tan(x), color='#013243')
plt.title('Tan')
# المخطط الرابع
plt.subplot(2, 2, 4)
plt.plot(x, x**2, color='#025d7a')
plt.title('X^2')
plt.tight_layout()
plt.show()
plt.figure(figsize=(12,8))
# المخطط الأول
plt.subplot(2, 2, 1)
plt.plot(x, np.sin(x), color='#013243')
plt.title('Sin')
# المخطط الثاني
plt.subplot(2, 2, 2)
plt.plot(x, np.cos(x), color='#025d7a')
plt.title('Cos')
# المخطط الثالث
plt.subplot(2, 2, 3)
plt.plot(x, np.tan(x), color='#013243')
plt.title('Tan')
# المخطط الرابع
plt.subplot(2, 2, 4)
plt.plot(x, x**2, color='#025d7a')
plt.title('X^2')
plt.tight_layout()
plt.show()
الشكل 4: يوضح كيفية دمج أربعة رسوم بيانية مختلفة في صورة واحدة باستخدام دالة subplot.
رابعاً: المقارنة بين Matplotlib و Seaborn
| Matplotlib | Seaborn |
|---|---|
| تحكم كامل في جميع تفاصيل الرسم | رسوم جاهزة بتصميم احترافي وبأقل كود |
| تتطلب كتابة أوامر متعددة للتخصيص | توفر أنماطاً وألواناً جاهزة |
| المكتبة الأساسية التي يجب تعلمها أولاً | مبنية على Matplotlib وتعد امتداداً لها |
| الأفضل للرسوم العلمية المعقدة | الأفضل للرسوم الإحصائية السريعة |
📚 مقالات ذات صلة:
- شرح مكتبة Seaborn: رسوم إحصائية بسطر برمجي واحد
- شرح مكتبة Pandas لتحليل البيانات
- 10 أنواع من الرسوم البيانية يجب على محلل البيانات معرفتها
- شرح مكتبة Seaborn: رسوم إحصائية بسطر برمجي واحد
- شرح مكتبة Pandas لتحليل البيانات
- 10 أنواع من الرسوم البيانية يجب على محلل البيانات معرفتها
✅ الخلاصة: البداية تكون بإتقان الدوال
plt.plot() و plt.bar() و plt.hist(). هذه الدوال الثلاث تغطي ما يقارب 80% من حالات الاستخدام العملية في تحليل البيانات.

تعليقات