تُعد خرائط الحرارة قيّمة للغاية في تصوّر البيانات في شبكة ثنائية الأبعاد، حيث تمثل شدة اللون مقدار كل قيمة. توفر مكتبة Matplotlib، وهي مكتبة قوية لتصوّر البيانات في Python، عدة طرق لإنشاء خرائط حرارة مُقنعة. تتناول هذه المقالة ثلاث طرق شائعة: استخدام imshow()
، والاستفادة من مكتبة Seaborn، واستخدام pcolormesh()
. سنغطي كل طريقة بأمثلة وشروحات واضحة.
جدول المحتويات
imshow()
: نهج بسيطheatmap()
من Seaborn: وظائف مُحسّنةpcolormesh()
: للبيانات غير المنتظمة والتحكم الدقيق
imshow()
: نهج بسيط
توفر دالة imshow()
في Matplotlib طريقة مباشرة لإنشاء خرائط حرارة. تقبل مصفوفة ثنائية الأبعاد كمدخل، حيث تُعيّن القيم إلى الألوان باستخدام مخطط ألوان مُختار.
import matplotlib.pyplot as plt
import numpy as np
# بيانات عينة
data = np.random.rand(10, 10)
# إنشاء خريطة الحرارة
plt.imshow(data, cmap='viridis')
# إضافة شريط ألوان
plt.colorbar(label='القيمة')
# إضافة تسميات وعنوان
plt.xlabel('المحور X')
plt.ylabel('المحور Y')
plt.title('خريطة حرارة ثنائية الأبعاد باستخدام imshow()')
# عرض الرسم
plt.show()
يُنشئ هذا الكود خريطة حرارة حيث تعكس شدة لون الخلية القيمة المُقابلة في مصفوفة data
. تختار وسيطة cmap
مخطط الألوان (مثل ‘plasma’، ‘magma’، ‘inferno’، ‘cividis’). تضيف colorbar()
مفتاحًا يربط الألوان بالقيم.
heatmap()
من Seaborn: وظائف مُحسّنة
يوفر Seaborn، المُبني على Matplotlib، واجهة أعلى مستوى لإنشاء رسوم بيانية مُفيدة إحصائيًا وجذابة بصريًا، بما في ذلك خرائط الحرارة. تُبَسّط دالته heatmap()
العملية وتضيف ميزات مفيدة.
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
# بيانات عينة
data = np.random.rand(10, 10)
# إنشاء خريطة الحرارة
sns.heatmap(data, annot=True, cmap='coolwarm', fmt=".2f")
# إضافة عنوان
plt.title('خريطة حرارة ثنائية الأبعاد باستخدام Seaborn')
# عرض الرسم
plt.show()
يُنشئ هذا المثال من Seaborn خريطة حرارة مشابهة ولكن مع annot=True
لعرض القيم العددية داخل كل خلية، مما يُعزز القابلية للقراءة. يُتحكم fmt
في تنسيق التعليق التوضيحي.
pcolormesh()
: للبيانات غير المنتظمة والتحكم الدقيق
تُعد pcolormesh()
في Matplotlib مثالية لخرائط الحرارة ذات البيانات غير المنتظمة أو عندما تكون هناك حاجة إلى تحكم دقيق في حدود الخلايا.
import matplotlib.pyplot as plt
import numpy as np
# بيانات عينة (باستخدام meshgrid للتوضيح)
x = np.arange(0, 10, 1)
y = np.arange(0, 10, 1)
X, Y = np.meshgrid(x, y)
data = np.sin(X) * np.cos(Y)
# إنشاء خريطة الحرارة
plt.pcolormesh(X, Y, data, cmap='RdBu')
# إضافة شريط ألوان
plt.colorbar(label='القيمة')
# إضافة تسميات وعنوان
plt.xlabel('المحور X')
plt.ylabel('المحور Y')
plt.title('خريطة حرارة ثنائية الأبعاد باستخدام pcolormesh()')
# عرض الرسم
plt.show()
يستخدم هذا المثال meshgrid
لإنشاء شبكات إحداثيات x و y، والتي تُحدد حدود الخلايا لـ pcolormesh()
. يوفر هذا مرونة أكبر من imshow()
. يُعد مخطط ألوان RdBu
مخططًا مُتباينًا مناسبًا للبيانات التي تحتوي على قيم موجبة وسالبة. تذكر تثبيت المكتبات اللازمة باستخدام pip install matplotlib seaborn
.