Data Visualization

رسم دوائر بكفاءة في ماتبلوتليب

Spread the love

يوفر ماتبلوتليب عدة طرق لتصور الدوائر، لكل منها نقاط قوتها وضعفها. تستكشف هذه المقالة ثلاث طرق بارزة، وتقارن كفاءتها وملاءمتها لتطبيقات مختلفة.

جدول المحتويات

  1. استخدام matplotlib.patches.Circle
  2. الرسم من معادلة الدائرة
  3. التقريب باستخدام رسم بياني مبعثر

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 لكفاءتها ووضوحها. توفر الطرق الأخرى تصورات بديلة ورؤى في تقنيات الرسم المختلفة.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *