البرمجة

تخصيص ألوان الليجند مع أعمدة Matplotlib في Python

في الكود الذي قدمته، يظهر أنك تقوم برسم رسم بياني باستخدام مكتبة Matplotlib في لغة البرمجة بايثون. الهدف هو تعيين ألوان محددة للأعمدة وجعل ألوان الأعمدة متطابقة مع ألوان وسائط الرسم التفسيرية (الليجند). فيما يلي توضيح لكيفية تحقيق ذلك:

أولاً وقبل أن نقوم بتعديل الكود، يجب ملاحظة أن Label يجب أن يتم كتابته بحروف صغيرة (label) وليس بحرف كبير (Label). هذا يعتبر مهمًا لأنه يؤثر على كيفية تحديد الليجند.

ثانيًا، يمكنك تحقيق التطابق بين ألوان الأعمدة والليجند عن طريق تحديد الألوان في الليجند يدوياً باستخدام Patch من مكتبة matplotlib.patches ومن ثم تخصيص اللون لكل تصنيف. فيما يلي التعديلات على الكود:

python
import numpy as np import matplotlib.pyplot as plt from matplotlib.patches import Patch x = [1, 2, 3] y = [399, 499, 100] LABELS = ["node0", "node1", "failed"] colors = ['g', 'r', 'b'] fig, ax = plt.subplots() bars = ax.bar(x, y, align='center', color=colors) plt.xticks(x, LABELS) legend_elements = [Patch(color=colors[i], label=LABELS[i]) for i in range(len(LABELS))] ax.legend(handles=legend_elements) plt.show()

باستخدام هذا الكود المعدل، يتم تعيين ألوان متطابقة بين الأعمدة وعناصر الليجند. يتم ذلك عن طريق إنشاء legend_elements الذي يحتوي على قطع لون لكل تصنيف، ثم يتم تعيين هذه القطع إلى الليجند في الرسم البياني.

المزيد من المعلومات

بالطبع، دعوني أوسع المعلومات حول الكود البرمجي الخاص بك وكيف يمكن تحسينه وفهم بعض الجوانب التقنية فيه.

في البداية، الكود الحالي يستخدم مكتبة Matplotlib لرسم رسم بياني للبيانات الخاصة بك. يتم استخدام plt.bar لرسم الأعمدة، ومن ثم يتم تحديد الألوان باستخدام قائمة colors. يتم إعطاء تسميات للمحور السفلي باستخدام plt.xticks ويتم إضافة ليجند تلقائي باستخدام plt.legend().

تمت إجراء تعديلات لتحسين الكود وجعله أكثر تفصيلاً وفعالية. في النسخة المعدلة:

  1. تم استخدام matplotlib.patches.Patch لإنشاء عناصر لون لكل فئة (تصنيف) في الليجند.
  2. تم إنشاء legend_elements، وهو قائمة تحتوي على قطع لون لكل فئة مع تسمياتها.
  3. تم تخصيص اللون لكل فئة باستخدام القائمة colors.
  4. تم استخدام ax.legend() بدلاً من plt.legend() لتحديد مكان ظهور الليجند داخل المخطط.
  5. تم استخدام متغير bars لتخزين الأعمدة التي تم رسمها، مما يمكن من تحديد الألوان بشكل ديناميكي في المستقبل.

هذه التعديلات تهدف إلى تحسين فهم القارئ للكود وتسهيل الصيانة والتعديل في المستقبل. يمكنك دائماً استكشاف المزيد من إمكانيات Matplotlib لتحسين تصميم الرسوم البيانية وجعلها تتناسب مع احتياجات مشروعك بشكل أفضل.

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