مكتبة matplotlib هي احدى اشهر مكتبات بايثون لرسم المخططات ثنائية البعد 2D وعرضها. كما بالشكل التالي:
الاستخدام
عادة لرسم اي مخطط باستخدام مكتبة matplotlib نتبع مجموعة من الخطوات:
التهيئة
اول خطوة تكون باستيراد import المكتبات التي نحتاجها وهما matplotlib و numpy حيث ان اغلبية البيانات تكون محفوظة في مصفوفات numpy
تشغيلimport matplotlib.pyplot as plt import numpy as np
اعداد ابيانات
الخطوة التالية هي اعداد البيانات، لرسم المخطوطات نحتاج ان نحدد قيم البيانات على المحور الافقي X و ما يقابلها على المحور الرأسي Y. فمثلا اذا اردنا ان نرسم الدالة Y = X^2
نقوم بانشاء مصفوفتين كل منها يحمل قيم X و Y
نستطيع استخدام دوال مكتبة numpy لانشاء الدوال الحسابية.تشغيل
X = np.arange(0,10) Y = np.power(X,2)
تجهيز عرض البيانات
لعرض البيانات نحتاج وضع البيانات على محاورaxes المخطط و لاظهار الشكل النهائي نحتاج الى مساحة عرض، توفر لنا مكتبة matplotlib الادوات اللازمة لذلك. الدالة ()subplots
توفر لنا المحاور التي نستخدمها لوضع البيانات عليها و توفر لنا مساحة عرض وهي عبارة عن نافذة window جديدة تظهر لعرض البيانات.
fig, ax = plt.subplots()# تهيئة نافذة العرض و محاور الرسم الهندسي ax.plot(X,Y) # وضع البيانات على المحاور fig.show() # اظهار نافذة العرض
المخططات
توفر مكتبة matplotlib العديد من المخططات المختلفة التي نستطيع عرض البيانات عليها
المنحنايات
احد اشهر المخططاه هو المخطط المنحني و هو يقوم بتوصيل نقاط الرسم الهندسي بخط منحني
تشغيلX = np.linspace(0, 4*np.pi,1000) Y = np.sin(X) fig, ax = plt.subplots() ax.plot(X,Y) fig.show()
مخطط التبعثر scatter
هو مخطط لا يقوم برسم خطوط بين نقاط الرسم (x,y) بل يكتفي بعرضها لنرى توزيع النقاط على المحاور
تشغيلX = np.random.uniform(0,1,100) Y = np.random.uniform(0,1,100) fig, ax = plt.subplots() ax.scatter(X,Y) fig.show()
مخطط شريطي bar
هو مخطط يستخد لعرض البيانات في صورة اعمدة
تشغيلX = np.arange(10) Y = np.random.uniform(0,10,10) fig, ax = plt.subplots() ax.bar(X,Y) fig.show()
مخطط الدائرة pie chart
هو مخطط يستخدم لاظهار توزيع البيانات في صورة دائرة
تشغيلX = np.random.uniform(0,1,4) fig, ax = plt.subplots() ax.pie(X) fig.show()
المظهر
تتيح لنا مكتبة matplotlib العديد من الادوات التي تمكننا من تغير مظهر المخططات مثل تغير الوان المخطط وشكل الخطوط وكتابة العناويين على المحاور وغيرها
اللون
نستطيع تغير لون الخط بتحديد اللون المراد في دالة plot
X = np.linspace(0, 4*np.pi,1000) Y = np.sin(X) fig, ax = plt.subplots() ax.plot(X,Y, color= "red") # تغير اللون fig.show()
شكل الخط
نستطيع تحديد شكل الخطوط اذا كانت متصلة او منفصلة اومنقطة من خلال دالة plot
X = np.linspace(0, 4*np.pi,1000) Y = np.sin(X) fig, ax = plt.subplots() ax.plot(X,Y, color= "red", linestyle="--") fig.show()
الوسوم
نستطيع وضع وسوم labels او عناوين للمحاور وذلك عن طريق عنصر المحاور
تشغيلX = np.linspace(0, 4*np.pi,1000) Y = np.sin(X) fig, ax = plt.subplots() ax.plot(X,Y, color= "red") ax.set_title('Sin Function') # عنوان المخطط ax.set_xlabel('X Data') # المحور الافقي ax.set_ylabel('Y Data') # المحور الرأسي fig.show()
المنحنايات المتعددة
نستطيع ان نظهر اكثر من مخطط في نفس نافذة العرض سواء كان داخل المحاور او في محاور مختلفة
نفس المحاور
فيها تظهر المنحنايات على نفس المحاور
تشغيلX = np.linspace(0, 20 ,100) Y = np.sin(X) Z = np.cos(X) fig, ax = plt.subplots() ax.plot(X,Y,X,Z) fig.show()
محاور مختلفة
فيها تظهر المنحنايات في نفس مساحة العرض لكن على محاور مختلفة، حيث نحدد للدالة subplot
عدد المحاور التي نريدها و تقوم بارجاع عدد محاور مقابل لها
X = np.linspace(0, 20 ,100) Y = np.sin(X) Z = np.cos(X) fig, (ax1, ax2) = plt.subplots(2,1) # تحديد اكثر من محور ax1.plot(X,Y,color="green") ax2.plot(X,Z) fig.show()