البرمجة

حل مشكلة TypeError في رسم الرسوم البيانية باستخدام NumPy وMatplotlib في Python

عند تحليل الكود الذي قدمته، يظهر أن الخطأ الذي واجهته ينبع من محاولتك لاستخدام دالة np.int على مصفوفة بدلاً من عدد فردي. في الواقع، دالة np.int تقوم بتحويل قيمة مفردة إلى نوع البيانات integer، وليس تحويل مصفوفة بأكملها.

لحل هذا الخطأ، يمكنك تحديد النوع المرغوب للمصفوفة x باستخدام astype بدلاً من استخدام np.int. يمكنك تحسين الكود كما يلي:

python
import 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.

زر الذهاب إلى الأعلى