إتقان تصور بيانات ثلاثية الأبعاد باستخدام مخططات الأسطح في Matplotlib
- إعداد بيئتك
- إنشاء مخطط سطح أساسي
- تخصيص مخطط السطح الخاص بك
- أمثلة متقدمة ومعالجة البيانات
- استكشاف الأخطاء وإصلاحها
إعداد بيئتك
قبل الغوص في إنشاء تصورات ثلاثية الأبعاد مذهلة، تأكد من تثبيت المكتبات اللازمة. استخدم pip لتثبيت Matplotlib و NumPy:
pip install matplotlib numpy
إنشاء مخطط سطح أساسي
يعتمد أساس أي مخطط سطح على شبكة من نقاط البيانات. سنستخدم `meshgrid` من NumPy لإنشاء هذه الشبكة، ثم نحدد دالة لتحديد قيم Z (الارتفاع) في كل نقطة.
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.mplot3d import Axes3D
# إنشاء الشبكة
x = np.arange(-5, 5, 0.25)
y = np.arange(-5, 5, 0.25)
X, Y = np.meshgrid(x, y)
# تحديد قيم Z (مثال: قطع مكافئ)
R = np.sqrt(X**2 + Y**2)
Z = np.sin(R)
# إنشاء كائن الشكل والمحاور
fig = plt.figure(figsize=(10, 8)) # زيادة حجم الشكل لتحسين العرض
ax = fig.add_subplot(111, projection='3d')
# رسم السطح
surf = ax.plot_surface(X, Y, Z, cmap='viridis') # باستخدام خريطة ألوان
# إضافة شريط ألوان
fig.colorbar(surf, shrink=0.5, aspect=5)
# تعيين العلامات والعنوان
ax.set_xlabel('X')
ax.set_ylabel('Y')
ax.set_zlabel('Z')
ax.set_title('مخطط سطح sin(√(X² + Y²))')
# عرض المخطط
plt.show()
هذا ينتج مخطط سطح بوضوح محسّن باستخدام خريطة ألوان وشريط ألوان.
تخصيص مخطط السطح الخاص بك
يوفر Matplotlib خيارات تخصيص واسعة لتكييف تصورك:
خرائط الألوان
تحكم في مخطط الألوان باستخدام الوسيطة `cmap`. استكشف خيارات مثل ‘plasma’، ‘magma’، ‘inferno’، ‘cividis’، و ‘coolwarm’.
ax.plot_surface(X, Y, Z, cmap='plasma')
خطوط المتساويات
تراكب خطوط المتساويات لتسليط الضوء على نطاقات قيم Z محددة. تحدد الوسيطة `offset` مستوى Z لخطوط المتساويات.
ax.contour(X, Y, Z, offset=-1, cmap='viridis')
الإضاءة وكثافة الشبكة
اضبط `rstride` و `cstride` للتحكم في كثافة شبكة السطح. تؤدي القيم الأعلى إلى أسطح أكثر سلاسة ولكن قد تفقد التفاصيل.
ax.plot_surface(X, Y, Z, cmap='viridis', rstride=2, cstride=2)
مخططات الهيكل السلكي
من أجل منظور مختلف، مثل السطح كهيكل سلكي:
ax.plot_wireframe(X, Y, Z, color='black')
العلامات والعناوين
العلامات والعناوين الواضحة ضرورية لتفسير البيانات.
ax.set_xlabel('علامة محور X')
ax.set_ylabel('علامة محور Y')
ax.set_zlabel('علامة محور Z')
ax.set_title('عنوان المخطط الوصفي')
أمثلة متقدمة ومعالجة البيانات
قم بتكييف هذه الكود لتصور أي دالة من متغيرين. استورد البيانات من الملفات (CSV، نص، إلخ) باستخدام مكتبات مثل pandas لإنشاء مصفوفات X و Y و Z الخاصة بك.
استكشاف الأخطاء وإصلاحها
* **شكل البيانات:** تأكد من أن مصفوفات X و Y و Z لها أبعاد متوافقة.
* **عبارات الاستيراد:** تأكد من الاستيرادات الصحيحة (`matplotlib.pyplot`، `numpy`، `mpl_toolkits.mplot3d`).
* **الإسقاط:** تأكد من تعيين إسقاط الرسم الفرعي إلى ‘3d’.