حل مشكلة TypeError في رسم الرسوم البيانية باستخدام NumPy وMatplotlib في Python
عند تحليل الكود الذي قدمته، يظهر أن الخطأ الذي واجهته ينبع من محاولتك لاستخدام دالة np.int
على مصفوفة بدلاً من عدد فردي. في الواقع، دالة np.int
تقوم بتحويل قيمة مفردة إلى نوع البيانات integer، وليس تحويل مصفوفة بأكملها.
لحل هذا الخطأ، يمكنك تحديد النوع المرغوب للمصفوفة x
باستخدام astype
بدلاً من استخدام np.int
. يمكنك تحسين الكود كما يلي:
pythonimport numpy as np
import matplotlib.pyplot as plt
def f(x):
return x.astype(int)
x = np.arange(1, 15.1, 0.1)
plt.plot(x, f(x))
plt.show()
باستخدام astype(int)
، سيتم تحويل جميع عناصر المصفوفة x
إلى أنواع بيانات صحيحة بدلاً من محاولة تحويل المصفوفة بأكملها إلى عدد صحيح. هذا يجنبك الخطأ الحالي الذي واجهته، ويسمح للرسم البياني بالعمل بشكل صحيح.
المزيد من المعلومات
إذاً، عندما نلقي نظرة أعمق على الكود الخاص بك، نجد أنك تقوم بتعريف دالة f(x)
التي تقوم بتحويل قيم x
إلى أنواع بيانات صحيحة باستخدام astype(int)
. ثم تقوم بإنشاء مصفوفة x
باستخدام np.arange
لتوليد مصفوفة من الأرقام العشرية بين 1 و 15.1 بخطوة 0.1.
ثم، تقوم برسم الدالة f(x)
باستخدام plt.plot(x, f(x))
. وهنا يكمن الخطأ السابق، حيث حاولت تحويل المصفوفة x
بأكملها إلى نوع بيانات صحيحة بدلاً من تحويل كل قيمة على حدة.
من خلال تصحيح الكود باستخدام x.astype(int)
، يمكنك الآن تجنب الخطأ ورؤية الرسم البياني الصحيح للدالة f(x)
. يجدر بالذكر أن هذا النوع من الأخطاء شائع عند استخدام دوال تعامل مع نوع بيانات واحدة فقط مع مصفوفات من نوع آخر. تصحيح هذا النوع من الأخطاء يتطلب فهم دقيق لأنواع البيانات وطرق التحويل في مكتبة NumPy.