يوفر ماتبلوتليب عدة طرق لتصور الدوائر، لكل منها نقاط قوتها وضعفها. تستكشف هذه المقالة ثلاث طرق بارزة، وتقارن كفاءتها وملاءمتها لتطبيقات مختلفة.
جدول المحتويات
1. استخدام matplotlib.patches.Circle
هذه هي الطريقة الأكثر مباشرة والأفضل عمومًا. تُنشئ فئة matplotlib.patches.Circle
كائن دائرة يمكن إضافته مباشرة إلى الرسم البياني الخاص بك. إنها فعالة وتنتج رسومات متجهة نظيفة.
import matplotlib.pyplot as plt
from matplotlib.patches import Circle
fig, ax = plt.subplots()
center_x, center_y = 0, 0
radius = 2
circle = Circle((center_x, center_y), radius, facecolor='skyblue', edgecolor='black', linewidth=2)
ax.add_patch(circle)
ax.set_xlim([-3, 3])
ax.set_ylim([-3, 3])
ax.set_aspect('equal') # يضمن ظهور الدائرة بشكل دائري
plt.title('دائرة باستخدام matplotlib.patches.Circle')
plt.show()
2. الرسم من معادلة الدائرة
يمكن تعريف الدائرة بمعادلتها: (x – h)² + (y – k)² = r²، حيث (h، k) هو المركز و r هو نصف القطر. يمكننا توليد إحداثيات x و y التي تحقق هذه المعادلة ورسمها.
import matplotlib.pyplot as plt
import numpy as np
h, k = 0, 0
r = 2
theta = np.linspace(0, 2 * np.pi, 200) # المزيد من النقاط لدائرة أكثر سلاسة
x = h + r * np.cos(theta)
y = k + r * np.sin(theta)
plt.plot(x, y)
plt.xlabel("x")
plt.ylabel("y")
plt.title('دائرة من المعادلة')
plt.gca().set_aspect('equal')
plt.show()
3. التقريب باستخدام رسم بياني مبعثر
يمكن لرسم بياني مبعثر تقريب دائرة عن طريق رسم العديد من النقاط التي تم إنشاؤها عشوائيًا داخل نصف قطر الدائرة. هذه الطريقة أقل كفاءة وأقل دقة من الطريقتين السابقتين، لكنها تُظهر نهجًا مختلفًا.
import matplotlib.pyplot as plt
import numpy as np
center_x, center_y = 0, 0
radius = 2
num_points = 500
angles = np.random.uniform(0, 2 * np.pi, num_points)
radii = np.random.uniform(0, radius, num_points)
x = center_x + radii * np.cos(angles)
y = center_y + radii * np.sin(angles)
plt.scatter(x, y, s=5) # ضبط 's' لحجم النقطة
plt.xlabel("x")
plt.ylabel("y")
plt.title('تقريب دائرة باستخدام رسم بياني مبعثر')
plt.gca().set_aspect('equal')
plt.show()
تُوصى بشكل عام بطريقة matplotlib.patches.Circle
لكفاءتها ووضوحها. توفر الطرق الأخرى تصورات بديلة ورؤى في تقنيات الرسم المختلفة.