مكتبة الرسومات الرياضية matplotlib
Google Colab
مقدمة عن مكتبة matplotlib

تُعد مكتبة `matplotlib` من أهم المكتبات في بايثون لإنشاء الرسوم البيانية ثنائية الأبعاد، وهي أساسية لعلماء البيانات، والمهندسين، والباحثين. هذه نظرة شاملة على استخداماتها وأهميتها في الرياضيات والحوسبة العلمية:

باستخدام `matplotlib`، يمكن للباحثين والمطورين تحويل الأفكار المعقدة إلى رسوم بيانية واضحة وبسيطة، مما يسهل عملية التواصل مع النتائج والمفاهيم الرياضية.

    # استيراد matplotlib
    import matplotlib.pyplot as plt
    
    # مثال بسيط لإنشاء نافذة عرض فارغة
    plt.figure()
    plt.title('matplotlib')
    plt.show()
    
تم نسخ الكود!
رسم الدوال الأساسية: الدوال الخطية والتربيعية

تُستخدم مكتبة `matplotlib` بشكل واسع لرسم الدوال الرياضية الأساسية مثل الدوال الخطية والتربيعية. يساعد رسم هذه الدوال في فهم سلوكها وتحليلها بصريًا. فيما يلي شرح لكيفية رسم هذه الدوال باستخدام `matplotlib` مع أمثلة توضيحية:

يوضح الرسم البياني للدوال الخطية والتربيعية كيفية تفاعل المتغيرات مع بعضها البعض ويوفر وسيلة بصرية لتحليل سلوك الدوال الرياضية.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # رسم دالة خطية
    x = np.linspace(-10, 10, 400)
    y = 2 * x + 3
    plt.plot(x, y, label='f(x) = 2x + 3')
    plt.title('دالة خطية')
    plt.xlabel('x')
    plt.ylabel('f(x)')
    plt.legend()
    plt.grid(True)
    plt.show()
    
    # رسم دالة تربيعية
    x = np.linspace(-10, 10, 400)
    y = 1 * x**2 + 2 * x + 1
    plt.plot(x, y, label='f(x) = x^2 + 2x + 1')
    plt.title('دالة تربيعية')
    plt.xlabel('x')
    plt.ylabel('f(x)')
    plt.legend()
    plt.grid(True)
    plt.show()
    
تم نسخ الكود!
تخصيص الرسوم البيانية: العناوين، والتسميات، والوسائل الإيضاحية

توفر مكتبة `matplotlib` العديد من الخيارات لتخصيص الرسوم البيانية، مما يجعلها أكثر وضوحًا وجاذبية. من بين هذه الخيارات إضافة عناوين، تسميات المحاور، ووسائل إيضاح. فيما يلي شرح لكيفية تخصيص الرسوم البيانية باستخدام هذه الميزات مع أمثلة توضيحية:

يمكن تخصيص الرسوم البيانية بسهولة باستخدام `matplotlib` لجعلها أكثر فعالية في نقل المعلومات البصرية.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    # رسم البيانات
    plt.plot(x, y, label='موجة جيبية')
    
    # إضافة عنوان
    plt.title('رسم موجة جيبية')
    
    # إضافة تسميات للمحاور
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    
    # إضافة وسيلة إيضاح
    plt.legend()
    
    # إضافة شبكة
    plt.grid(True)

    #يجب الحفظ قبل العرض
    # حفظ المخطط إلى ملف
    plt.savefig('sine_wave_plot.png')
    
    # عرض المخطط
    plt.show()
    
تم نسخ الكود!
مقدمة في أنماط وسمات الرسوم البيانية

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

يمكن استخدام الأنماط والسمات في `matplotlib` بسهولة لتغيير مظهر الرسوم البيانية بسرعة وبدون الحاجة لتعديل الكود الأساسي. في Google Colab، تكون هذه الأنماط مفيدة بشكل خاص لإنشاء رسوم بيانية جذابة لتحليل البيانات.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # عرض قائمة الأنماط المتاحة
    print(plt.style.available)
    
    # إنشاء بيانات
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    # استخدام نمط ggplot
    plt.style.use('ggplot')
    
    # رسم البيانات
    plt.plot(x, y, label='موجة جيبية')
    
    # إضافة عنوان، تسميات، وسيلة إيضاح وشبكة
    plt.title('رسم موجة جيبية - نمط ggplot')
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    plt.legend()
    plt.grid(True)
    
    # عرض المخطط
    plt.show()
    
تم نسخ الكود!
رسم المخططات الخطية باستخدام ماتبلوتليب

تُعتبر المخططات الخطية من أكثر أنواع الرسوم البيانية استخدامًا في تحليل البيانات. يُستخدم المخطط الخطي لعرض البيانات كنقاط متصلة بخطوط، مما يساعد في توضيح الاتجاهات والأنماط عبر الزمن أو الفئات المختلفة. فيما يلي شرح مفصل لكيفية إنشاء وتخصيص المخططات الخطية باستخدام `matplotlib` مع أمثلة توضيحية:

استخدام المخططات الخطية في `matplotlib` يساعد في تقديم بيانات واضحة وسهلة الفهم، مما يعزز من تحليل البيانات واتخاذ القرارات المبنية على البيانات.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    # رسم مخطط خطي بسيط
    plt.plot(x, y, label='موجة جيبية')
    
    # إضافة عنوان، تسميات، وسيلة إيضاح وشبكة
    plt.title('مخطط خطي بسيط')
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    plt.legend()
    plt.grid(True)
    
    # عرض المخطط
    plt.show()
    
    # تخصيص المخطط الخطي
    plt.plot(x, y, linestyle='--', color='r', marker='o', linewidth=2, label='موجة جيبية مخصصة')
    plt.title('مخطط خطي مخصص')
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    plt.legend()
    plt.grid(True)
    
    # عرض المخطط المخصص
    plt.show()
    
تم نسخ الكود!
رسم مخططات الأعمدة

تُستخدم المخططات الشريطية لتمثيل البيانات الفئوية باستخدام الأعمدة حيث يُمثل طول كل شريط قيمة الفئة. تُعد المخططات الشريطية فعالة لعرض المقارنات بين فئات مختلفة. يمكن تخصيص المخططات الشريطية بشكل كبير باستخدام `matplotlib`. فيما يلي شرح مفصل لكيفية إنشاء وتخصيص المخططات الشريطية مع أمثلة توضيحية:

تتيح الأعمدة في `matplotlib` عرض البيانات الفئوية بطريقة بصرية واضحة، مما يسهل مقارنة الفئات وتحديد الاتجاهات.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    categories = ['A', 'B', 'C', 'D', 'E']
    values = [5, 7, 3, 8, 6]
    
    # رسم مخطط شريطي بسيط
    plt.bar(categories, values)
    plt.title('مخطط شريطي بسيط')
    plt.xlabel('الفئات')
    plt.ylabel('القيم')
    plt.grid(True)
    plt.show()
    
    # تخصيص المخطط الشريطي
    plt.bar(categories, values, color='g', width=0.5, align='center')
    plt.title('مخطط شريطي مخصص')
    plt.xlabel('الفئات')
    plt.ylabel('القيم')
    plt.grid(True)
    
    # إضافة تسميات للأعمدة
    for index, value in enumerate(values):
        plt.text(index, value + 0.2, str(value), ha='center')
    
    plt.show()
    
    # رسم مخطط شريطي أفقي
    plt.barh(categories, values, color='b', height=0.5)
    plt.title('مخطط شريطي أفقي')
    plt.xlabel('القيم')
    plt.ylabel('الفئات')
    plt.grid(True)
    
    # إضافة تسميات للأعمدةالأفقية
    for index, value in enumerate(values):
        plt.text(value + 0.2, index, str(value), va='center')
    
    plt.show()
    
تم نسخ الكود!
رسم المخططات الشريطية المزدوجة باستخدام ماتبلوتليب

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

تتيح المخططات الشريطية المزدوجة في `matplotlib` عرض المقارنات بين مجموعات البيانات المختلفة بطريقة بصرية واضحة، مما يسهل تحليل البيانات واتخاذ القرارات.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    categories = ['A', 'B', 'C', 'D', 'E']
    values1 = [5, 7, 3, 8, 6]
    values2 = [6, 9, 5, 7, 4]
    x = np.arange(len(categories))
    width = 0.3  # عرض الأعمدة
    
    # رسم المخطط الشريطي المزدوج
    plt.bar(x, values1, width=width, color='b', align='center', label='مجموعة 1')
    plt.bar(x + width, values2, width=width, color='g', align='center', label='مجموعة 2')
    
    # إضافة عنوان، تسميات، وسيلة إيضاح وشبكة
    plt.title('مخطط شريطي مزدوج')
    plt.xlabel('الفئات')
    plt.ylabel('القيم')
    plt.xticks(x + width / 2, categories)
    plt.legend()
    plt.grid(True)
    
    # إضافة تسميات للأعمدة
    for index, value in enumerate(values1):
        plt.text(index, value + 0.1, str(value), ha='center')
    for index, value in enumerate(values2):
        plt.text(index + width, value + 0.1, str(value), ha='center')
    
    # عرض المخطط
    plt.show()
    
تم نسخ الكود!
تحديد حدود المحاور والتسميات باستخدام ماتبلوتليب

تتيح مكتبة `matplotlib` إمكانية تحديد حدود المحاور وتخصيص التسميات بشكل دقيق، مما يساعد في تحسين عرض البيانات وتوضيحها. يمكن تعديل حدود المحاور لتكبير أو تصغير نطاق العرض، وكذلك تعديل تسميات المحاور لتوفير معلومات أكثر وضوحًا. فيما يلي شرح مفصل لكيفية تحديد حدود المحاور وإضافة التسميات مع أمثلة توضيحية:

تحديد حدود المحاور وإضافة التسميات في `matplotlib` يساعد في توضيح البيانات وجعلها أكثر قابلية للفهم، مما يعزز من دقة التحليل والقراءة البصرية للبيانات.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    # رسم البيانات
    plt.plot(x, y, label='موجة جيبية')
    
    # تحديد حدود المحاور
    plt.xlim(0, 10)
    plt.ylim(-1, 1)
    
    # إضافة تسميات للمحاور والعنوان
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    plt.title('مخطط موجة جيبية مع حدود المحاور')
    
    # إضافة شبكة ووسيلة إيضاح
    plt.grid(True)
    plt.legend()
    
    # عرض المخطط
    plt.show()
    
تم نسخ الكود!
تخصيص العلامات وتسميات العلامات باستخدام ماتبلوتليب

تتيح مكتبة `matplotlib` إمكانية تخصيص العلامات على المحاور وتسميات العلامات، مما يساعد في تحسين وضوح البيانات وتسهل قراءتها. يمكن تعديل عدد العلامات، موقعها، وتنسيق تسمياتها بشكل يتناسب مع طبيعة البيانات. فيما يلي شرح مفصل لكيفية تخصيص العلامات وتسميات العلامات مع أمثلة توضيحية:

تخصيص العلامات وتسميات العلامات في `matplotlib` يساعد في توضيح المعلومات وجعل الرسوم البيانية أكثر جاذبية وسهولة في القراءة.

    import matplotlib.pyplot as plt
    import numpy as np
    
    # إنشاء بيانات
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    # رسم البيانات
    plt.plot(x, y, label='موجة جيبية')
    
    # تحديد مواقع وتسميات العلامات على المحور السيني
    ticks_x = np.arange(0, 11, 1)
    labels_x = [f'{tick} ث' for tick in ticks_x]
    plt.xticks(ticks_x, labels_x)
    
    # تحديد مواقع وتسميات العلامات على المحور الصادي
    ticks_y = np.linspace(-1, 1, 5)
    labels_y = [f'{tick:.1f}' for tick in ticks_y]
    plt.yticks(ticks_y, labels_y)
    
    # تدوير تسميات العلامات على المحور السيني
    plt.xticks(ticks_x, labels_x, rotation=45)
    
    # تغيير حجم الخط لتسميات العلامات
    plt.xticks(ticks_x, labels_x, fontsize=10)
    plt.yticks(ticks_y, labels_y, fontsize=10)
    
    # إضافة تسميات المحاور والعنوان
    plt.xlabel('الوقت (ثواني)')
    plt.ylabel('السعة')
    plt.title('مخطط موجة جيبية مع تخصيص العلامات')
    
    # إضافة شبكة ووسيلة إيضاح
    plt.grid(True)
    plt.legend()
    
    # عرض المخطط
    plt.show()
    
تم نسخ الكود!
تخصيص أنماط الخطوط، الألوان، والعلامات باستخدام ماتبلوتليب

تتيح مكتبة `matplotlib` مرونة عالية في تخصيص مظهر الخطوط في الرسوم البيانية، بما في ذلك أنماط الخطوط، الألوان، والعلامات. هذا يمكن أن يساعد في تمييز البيانات بوضوح وجعل الرسوم البيانية أكثر جاذبية. فيما يلي شرح مفصل لكيفية تخصيص أنماط الخطوط، الألوان، والعلامات مع أمثلة توضيحية:

تخصيص أنماط الخطوط، الألوان، والعلامات في `matplotlib` يساعد في تحسين تمييز البيانات بصريًا وجعل الرسوم البيانية أكثر وضوحًا وجاذبية.

import matplotlib.pyplot as plt
import numpy as np

# إنشاء بيانات
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)

# رسم البيانات مع تخصيصات مختلفة
plt.plot(x, y1, linestyle='-', color='b', marker='o', linewidth=1, label='موجة جيبية')
plt.plot(x, y2, linestyle='--', color='r', marker='s', linewidth=2, label='موجة جيبية مقلوبة')

# إضافة تسميات المحاور والعنوان
plt.xlabel('الوقت (ثواني)')
plt.ylabel('السعة')
plt.title('مخطط مخصص لأنماط الخطوط والألوان والعلامات')

# إضافة شبكة ووسيلة إيضاح
plt.grid(True)
plt.legend()

# عرض المخطط
plt.show()
تم نسخ الكود!
استخدام خرائط الألوان للتمييز البصري باستخدام ماتبلوتليب

تُستخدم خرائط الألوان في `matplotlib` لإضافة تدرجات لونية مميزة إلى الرسوم البيانية، مما يساعد في التمييز بين البيانات المختلفة وتوضيح الفروق بينها. يمكن استخدام خرائط الألوان لتلوين النقاط، الأشرطة، والخطوط بناءً على قيمها. فيما يلي شرح مفصل لكيفية استخدام خرائط الألوان مع أمثلة توضيحية:

يساعد استخدام خرائط الألوان في `matplotlib` على تحسين التمييز البصري بين البيانات، مما يسهل تحليل الرسوم البيانية وفهمها بشكل أفضل.

import matplotlib.pyplot as plt
import numpy as np
import matplotlib.cm as cm
import matplotlib.colors as mcolors

# إنشاء بيانات
x = np.linspace(0, 10, 100)
y = np.sin(x)
z = y  # استخدام قيم y كقيمة لونية

# رسم مخطط أعمدة باستخدام خريطة ألوان
plt.scatter(x, y, c=z, cmap='viridis')
plt.title('مخطط أعمدة باستخدام خريطة ألوان')
plt.xlabel('الوقت (ثواني)')
plt.ylabel('السعة')
plt.colorbar(label='قيمة السعة')
plt.grid(True)
plt.show()

# إنشاء بيانات للمخطط الشريطي
categories = ['A', 'B', 'C', 'D', 'E']
values = [5, 7, 3, 8, 6]

# تطبيع القيم لاستخدامها في خريطة الألوان
norm = mcolors.Normalize(vmin=min(values), vmax=max(values))

# رسم مخطط أعمدة باستخدام خريطة ألوان
plt.bar(categories, values, color=cm.viridis(norm(values)))
plt.title('مخطط شريطي باستخدام خريطة ألوان')
plt.xlabel('الفئات')
plt.ylabel('القيم')
plt.colorbar(cm.ScalarMappable(norm=norm, cmap='viridis'), label='قيمة الشريط')
plt.grid(True)

# إضافة تسميات للأشرطة
for index, value in enumerate(values):
    plt.text(index, value + 0.1, str(value), ha='center')

plt.show()
تم نسخ الكود!
إنشاء مخططات متعددة في شكل واحد باستخدام ماتبلوتليب

تتيح مكتبة `matplotlib` إمكانية إنشاء مخططات متعددة في شكل واحد، مما يسهل مقارنة البيانات المختلفة جنبًا إلى جنب. يمكن تحقيق ذلك باستخدام الدالة plt.subplot() لإنشاء شبكة من المخططات. فيما يلي شرح مفصل لكيفية إنشاء وتخصيص مخططات متعددة في شكل واحد مع أمثلة توضيحية:

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

import matplotlib.pyplot as plt
import numpy as np

# إنشاء بيانات
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)

# إنشاء شبكة من المخططات 2x2
plt.figure(figsize=(10, 8))

# المخطط الأول
plt.subplot(2, 2, 1)
plt.plot(x, y1, 'b-', label='موجة جيبية')
plt.title('موجة جيبية')
plt.xlabel('الوقت (ثواني)')
plt.ylabel('السعة')
plt.grid(True)
plt.legend()

# المخطط الثاني
plt.subplot(2, 2, 2)
plt.plot(x, y2, 'g-', label='موجة جيبية مقلوبة')
plt.title('موجة جيبية مقلوبة')
plt.xlabel('الوقت (ثواني)')
plt.ylabel('السعة')
plt.grid(True)
plt.legend()

# المخطط الثالث
plt.subplot(2, 2, 3)
plt.plot(x, y3, 'r-', label='ظل الزاوية')
plt.title('ظل الزاوية')
plt.xlabel('الوقت (ثواني)')
plt.ylabel('القيمة')
plt.grid(True)
plt.legend()

# المخطط الرابع
plt.subplot(2, 2, 4)
plt.plot(x, y4, 'm-', label='دالة أسية')
plt.title('دالة أسية')
plt.xlabel('الوقت (ثواني)')
plt.ylabel('القيمة')
plt.grid(True)
plt.legend()

# تعديل المسافات بين المخططات
plt.tight_layout()

# عرض المخطط
plt.show()
تم نسخ الكود!
استخدام GridSpec لإنشاء تخطيطات فرعية معقدة باستخدام ماتبلوتليب

تتيح مكتبة `matplotlib` مرونة عالية في إنشاء تخطيطات فرعية معقدة باستخدام GridSpec، مما يسمح بتخصيص أحجام المخططات الفرعية وترتيبها بشكل دقيق. GridSpec يوفر التحكم الكامل في تخطيط الشبكة وتوزيع المساحات بين المخططات. فيما يلي شرح مفصل لكيفية استخدام GridSpec لإنشاء تخطيطات فرعية معقدة مع أمثلة توضيحية:

استخدام GridSpec في `matplotlib` يساعد في تقديم تخطيطات فرعية معقدة ومنظمة، مما يسهل عرض البيانات وتحليلها بشكل أكثر دقة.

import matplotlib.pyplot as plt
import numpy as np

# إنشاء بيانات
x = np.linspace(0, 10, 100)
y1 = np.sin(x)
y2 = np.cos(x)
y3 = np.tan(x)
y4 = np.exp(x)

# إنشاء شكل باستخدام GridSpec
fig = plt.figure(figsize=(12, 10))
gs = plt.GridSpec(3, 3)

# المخطط الأول
ax1 = fig.add_subplot(gs[0, 0:2])
ax1.plot(x, y1, 'b-', label='موجة جيبية')
ax1.set_title('موجة جيبية')
ax1.set_xlabel('الوقت (ثواني)')
ax1.set_ylabel('السعة')
ax1.grid(True)
ax1.legend()

# المخطط الثاني
ax2 = fig.add_subplot(gs[0:2, 2])
ax2.plot(x, y2, 'g-', label='موجة جيبية مقلوبة')
ax2.set_title('موجة جيبية مقلوبة')
ax2.set_xlabel('الوقت (ثواني)')
ax2.set_ylabel('السعة')
ax2.grid(True)
ax2.legend()

# المخطط الثالث
ax3 = fig.add_subplot(gs[1:, 0:2])
ax3.plot(x, y3, 'r-', label='ظل الزاوية')
ax3.set_title('ظل الزاوية')
ax3.set_xlabel('الوقت (ثواني)')
ax3.set_ylabel('القيمة')
ax3.grid(True)
ax3.legend()

# المخطط الرابع
ax4 = fig.add_subplot(gs[2, 2])
ax4.plot(x, y4, 'm-', label='دالة أسية')
ax4.set_title('دالة أسية')
ax4.set_xlabel('الوقت (ثواني)')
ax4.set_ylabel('القيمة')
ax4.grid(True)
ax4.legend()

# تعديل المسافات بين المخططات
plt.tight_layout()

# عرض المخطط
plt.show()
تم نسخ الكود!
تعديل حجم الشكل ونسب الأبعاد في ماتبلوتليب

يُعد تعديل حجم الشكل ونسب الأبعاد جانبًا مهمًا لتحسين تقديم الرسوم البيانية في `matplotlib`. يمكن التحكم في هذه الأبعاد للتأكد من أن الرسوم البيانية تناسب البيانات المُعروضة وتظهر بشكل جمالي مناسب. فيما يلي شرح مفصل لكيفية تعديل حجم الشكل ونسب الأبعاد مع أمثلة توضيحية:

استخدام تعديلات الحجم ونسب الأبعاد يساعد على توفير عرض بصري أكثر وضوحًا وجاذبية، ويمكن أن يكون مفيدًا جدًا للرسوم البيانية التي تتطلب دقة عالية في تمثيل البيانات مثل الخرائط أو المخططات الهندسية.

import matplotlib.pyplot as plt

# تعديل حجم الشكل
plt.figure(figsize=(10, 5))
x = range(1, 11)
y = [2 * xi for xi in x]
plt.plot(x, y)
plt.title('مخطط خطي مع تعديل حجم الشكل')
plt.xlabel('القيمة X')
plt.ylabel('القيمة Y')
plt.grid(True)

# إنشاء مخطط لتعديل نسبة الأبعاد
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_title('مخطط خطي مع تعديل نسبة الأبعاد')
ax.set_xlabel('القيمة X')
ax.set_ylabel('القيمة Y')
ax.set_aspect('equal')  # تعيين نسبة الأبعاد للمحورين
plt.grid(True)

plt.show()
تم نسخ الكود!
استخدام نسبة الأبعاد للحفاظ على مقياس الرسوم البيانية في ماتبلوتليب

يُعد الحفاظ على مقياس الرسوم البيانية باستخدام نسبة الأبعاد أمرًا مهمًا لضمان تمثيل البيانات بشكل صحيح، خاصة في الرسوم البيانية الهندسية والخرائط. توفر مكتبة `matplotlib` طرقًا لتعيين نسبة الأبعاد بحيث تظل المسافات على المحورين متساوية، مما يساعد في الحفاظ على الأشكال الهندسية الحقيقية للبيانات. فيما يلي شرح مفصل لكيفية استخدام نسبة الأبعاد للحفاظ على مقياس الرسوم البيانية مع أمثلة توضيحية:

استخدام نسبة الأبعاد في `matplotlib` يساعد على الحفاظ على الأشكال الهندسية الحقيقية للبيانات ويضمن أن تكون الرسوم البيانية دقيقة ومتناسبة بشكل صحيح.

import matplotlib.pyplot as plt
import numpy as np

# إنشاء بيانات لمثال دائرة
theta = np.linspace(0, 2*np.pi, 100)
x = np.cos(theta)
y = np.sin(theta)

# رسم الدائرة مع نسبة الأبعاد المتساوية
fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_aspect('equal')  # تعيين نسبة الأبعاد المتساوية
ax.set_title('مخطط دائرة مع نسبة الأبعاد المتساوية')
ax.set_xlabel('المحور X')
ax.set_ylabel('المحور Y')
ax.grid(True)

# رسم شكل بيضاوي مع نسبة أبعاد ثابتة
fig, ax2 = plt.subplots()
ax2.plot(x, y * 2)
ax2.set_aspect(0.5)  # تعيين نسبة الأبعاد الثابتة
ax2.set_title('مخطط بيضاوي مع نسبة أبعاد ثابتة')
ax2.set_xlabel('المحور X')
ax2.set_ylabel('المحور Y')
ax2.grid(True)

# رسم شكل مستطيل مع نسبة أبعاد 'box'
fig, ax3 = plt.subplots()
ax3.plot(x * 2, y)
ax3.set_box_aspect(1)  # تعيين نسبة الأبعاد 'box'
ax3.set_title('مخطط مستطيل مع نسبة أبعاد "box"')
ax3.set_xlabel('المحور X')
ax3.set_ylabel('المحور Y')
ax3.grid(True)

# رسم مخطط مع نسبة أبعاد 'auto'
fig, ax4 = plt.subplots()
ax4.plot(x, y)
ax4.set_aspect('auto')  # تعيين نسبة الأبعاد 'auto'
ax4.set_title('مخطط مع نسبة أبعاد "auto"')
ax4.set_xlabel('المحور X')
ax4.set_ylabel('المحور Y')
ax4.grid(True)

plt.show()
تم نسخ الكود!
تدريب1

تدريب متدرج على plot()

    import matplotlib.pyplot as plt
    import numpy as np
    
    x = np.linspace(0, 10, 100)
    y = np.sin(x)
    
    plt.plot(x, y)
    plt.show()

    
    #توسيع1
    import matplotlib.pyplot as plt
    import numpy as np

    x = np.linspace(0, 10, 100)
    y = np.sin(x)

    plt.plot(x, y)
    plt.title('دالة الجيب')
    plt.xlabel('x')
    plt.ylabel('sin(x)')
    plt.show()

    
    #توسيع2
    import matplotlib.pyplot as plt
    import numpy as np

    x = np.linspace(0, 10, 100)
    y = np.sin(x)

    plt.plot(x, y, color='red', linestyle='--')
    plt.title('دالة الجيب')
    plt.xlabel('x')
    plt.ylabel('sin(x)')
    plt.grid(True)
    plt.show()

    
    #توسيع3
    import matplotlib.pyplot as plt
    import numpy as np

    x = np.linspace(0, 10, 100)
    y = np.sin(x)

    plt.plot(x, y, color='blue')
    plt.title('دالة الجيب')
    plt.xlabel('x')
    plt.ylabel('sin(x)')
    plt.annotate('نقطة الصفر', xy=(1.5, 0), xytext=(3, 0.5),
                arrowprops=dict(facecolor='black', arrowstyle='->'))
    plt.grid(True)
    plt.show()


            
تم نسخ الكود!
تدريب2

تدريب متدرج على bar()


    
    import matplotlib.pyplot as plt
    import numpy as np
    
    # البيانات
    categories = ['A', 'B', 'C']
    values = [10, 20, 15]
    
    # رسم الأعمدة الأساسي
    plt.bar(categories, values)
    plt.show()
    
    
    #توسيع1
    import matplotlib.pyplot as plt
    import numpy as np
    
    # البيانات
    categories = ['A', 'B', 'C']
    values = [10, 20, 15]
    
    # رسم الأعمدة مع تسميات
    plt.bar(categories, values)
    plt.title('Basic Bar Chart')
    plt.xlabel('Categories')
    plt.ylabel('Values')
    plt.show()
    
    
    #توسيع2
    import matplotlib.pyplot as plt
    import numpy as np
    
    # البيانات
    categories = ['A', 'B', 'C']
    values = [10, 20, 15]
    
    # إضافة مزيد من الخصائص إلى رسم الأعمدة
    plt.bar(categories, values, color='green', edgecolor='black')
    plt.title('Customized Bar Chart')
    plt.xlabel('Categories')
    plt.ylabel('Values')
    plt.grid(True)
    plt.show()
    
    
    #توسيع3
    import matplotlib.pyplot as plt
    import numpy as np
    
    # البيانات
    categories = ['A', 'B', 'C']
    values = [10, 20, 15]
    
    # الرسم الأفقي
    plt.barh(categories, values, color='blue')
    plt.title('Horizontal Bar Chart')
    plt.xlabel('Values')
    plt.ylabel('Categories')
    plt.grid(True)
    plt.show()
    
                    
تم نسخ الكود!
تدريب3

تدريب متدرج على pie()


                
    import matplotlib.pyplot as plt

    # البيانات
    labels = ['A', 'B', 'C']
    sizes = [10, 20, 15]

    # الرسم الأساسي للقطاع الدائري
    plt.pie(sizes, labels=labels)
    plt.show()

    

    #توسيع1
    import matplotlib.pyplot as plt

    # البيانات
    labels = ['A', 'B', 'C']
    sizes = [10, 20, 15]

    # عدد المنازل بعد الفاصلة
    plt.pie(sizes, labels=labels, autopct='%1.1f%%')
    plt.title('Basic Pie Chart with Percentages')
    plt.show()

    
    #توسيع2
    import matplotlib.pyplot as plt

    # البيانات
    labels = ['A', 'B', 'C']
    sizes = [10, 20, 15]
    colors = ['red', 'green', 'blue']
    explode = (0.1, 0, 0)  # سحب الشريحة الأولى عن المركز

    # إضافة مزيد من الخصائص إلى القطاع الدائري
    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, explode=explode)
    plt.title('Customized Pie Chart')
    plt.show()

    
    #توسيع3
    import matplotlib.pyplot as plt

    # بيانات
    labels = ['A', 'B', 'C', 'D']
    sizes = [10, 20, 15, 5]
    colors = ['red', 'green', 'blue', 'yellow']
    explode = (0.1, 0, 0, 0)  # سحب الشريحة الأولى عن المركز

    # إضافات مزيد من الخصائص
    plt.pie(sizes, labels=labels, colors=colors, autopct='%1.1f%%', shadow=True, explode=explode, startangle=140)
    plt.title('Advanced Pie Chart')
    plt.show()

   
                    
تم نسخ الكود!