اذهب إلى المحتوى

السؤال

نشر

ValueError: 'c' argument has 13 elements, which is inconsistent with 'x' and 'y' with size 15.

x = [2,2,8,1,15,8,12,9,7,3,11,4,7,14,12]
y = [100,105,84,105,90,99,90,95,94,100,79,112,91,80,85]
colors = [0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100]

plt.scatter(x, y, c=colors, cmap='Purples')
plt.colorbar()

plt.show()

 

Recommended Posts

  • 0
نشر

الكود غير صحيح، يوجد تطابق لعدد العناصر،  فالدالة plt.scatter تتوقع أن يكون لكل نقطة أي لكل زوج من x و y لون مقابل لها.

ما لديك هو 15 نقطة لأن طول القائمة x والقائمة y هو 15، ولكن قمت بتمرير 13 قيمة لون فقط في القائمة colors، لذا يجب إضافة قيمتين إلى قائمة colors لتصبح بطول 15.

import matplotlib.pyplot as plt

x = [2,2,8,1,15,8,12,9,7,3,11,4,7,14,12]
y = [100,105,84,105,90,99,90,95,94,100,79,112,91,80,85]

colors = [0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100, 110, 120]

plt.scatter(x, y, c=colors, cmap='Purples')
plt.colorbar()

plt.show()
  • 0
نشر

لاحظ من رسالة الخطأ تخبرك التالي :

  • أن المتغير x فيه 15 عنصر
  • والمتغير y فيه 15 عنصر .
  • ولكن المتغير colors فيه 13 عنصر فقط.

وإن في plt.scatter يجب على c أن يكون له نفس الطول مثل x و y أي 15 عنصر.

لهذا إم أن تزود قائمة colors بعنصرين إضافيين حتى تكون 15 عنصر :

colors = [0, 10, 20, 30, 40, 45, 50, 55, 60, 70, 80, 90, 100, 110, 120]

أو تقوم بقص x و y لتصبح بنفس طول colors أى 13 عنصر:

x = x[:13]
y = y[:13]

بالتوفيق.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...