Data Visualization

إتقان خرائط الحرارة ثنائية الأبعاد باستخدام Matplotlib و Seaborn

Spread the love

تُعد خرائط الحرارة قيّمة للغاية في تصوّر البيانات في شبكة ثنائية الأبعاد، حيث تمثل شدة اللون مقدار كل قيمة. توفر مكتبة Matplotlib، وهي مكتبة قوية لتصوّر البيانات في Python، عدة طرق لإنشاء خرائط حرارة مُقنعة. تتناول هذه المقالة ثلاث طرق شائعة: استخدام imshow()، والاستفادة من مكتبة 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.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *