Ali Ismael نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 كيف يمكنني رسم خريطة حرارية في Matplotlib ؟ 1 اقتباس
1 Ali Haidar Ahmad نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 خريطة التمثيل اللوني ثنائية الأبعاد هي أداة عرض بيانات تساعد على تمثيل حجم الظاهرة في شكل ألوان. وفي بايثون ، يمكننا رسم خرائط حرارية ثنائية الأبعاد باستخدام حزمة Matplotlib. وتحديداً من خلال الدالة imshow مع تحديد الوسيط autumn كقيمة للوسيط cmap (أو hot) الذي يمثل الخريطة اللونية: import numpy as np import matplotlib.pyplot as plt # توليد بيانات عشوائية data = np.random.random(( 20 , 20 )) # imshow استخدام الدالة plt.imshow( data , cmap = 'autumn' , interpolation = 'nearest' ) # وضع عنوان plt.title( "2-D Heat Map" ) plt.show() والنتيجة: أو من خلال الدالة pcolormesh حيث نمرر لها البيانات واسم الخريطة اللونية كما يلي: import matplotlib.pyplot as plt import numpy as np data = np.random.rand( 20 , 20 ) plt.pcolormesh( data , cmap = 'hot' ) plt.title( '2-D Heat Map' ) plt.show() كما يمكنك استخدام الدالة heatmap من seaborn كالتالي: import numpy as np import seaborn as sns import matplotlib.pylab as plt data = np.random.rand( 20 , 20 ) ax = sns.heatmap( data , cmap = 'hot' ) plt.title( "2-D Heat Map" ) plt.show() 1 اقتباس
1 Ahmed Sharshar نشر 18 أكتوبر 2021 أرسل تقرير نشر 18 أكتوبر 2021 (معدل) توجد العديد من الأشكال للخرائط الحرارية، ولعل أكثرها استخداما هي تلك التي توضح نسبة كل خلية عن طريق اظهار الرقم داخل الخلية والتعبير عنه بلون تزداد شدته كلما زادت نسبتها، المثال التالي يوضح هذا: # استدعاء المكتبات import numpy as np import matplotlib import matplotlib.pyplot as plt dishes = ["cucumber", "tomato", "fish", "meat", "potato", "rice", "vegetables"] people = ["ahmed", "ali.", "eyad", "lamiaa", "mohammed", "yousef", "anas"] harvest = np.array([[0.8, 2.4, 2.5, 3.9, 0.0, 4.0, 0.0], [2.4, 0.0, 4.0, 1.0, 2.7, 0.0, 0.0], [1.1, 2.4, 0.8, 4.3, 1.9, 4.4, 0.0], [0.6, 0.0, 0.3, 0.0, 3.1, 0.0, 0.0], [0.7, 1.7, 0.6, 2.6, 2.2, 6.2, 0.0], [1.3, 1.2, 0.0, 0.0, 0.0, 3.2, 5.1], [0.1, 2.0, 0.0, 1.4, 0.0, 1.9, 6.3]]) fig, ax = plt.subplots() im = ax.imshow(harvest) # كل ما تريد عرضه ax.set_xticks(np.arange(len(peoples))) ax.set_yticks(np.arange(len(dishes))) # تسمية المحاور ax.set_xticklabels(people) ax.set_yticklabels(dishes) # تنظيم شكلها plt.setp(ax.get_xticklabels(), rotation=45, ha="right", rotation_mode="anchor") # تسمية العناصر for i in range(len(dishes)): for j in range(len(people)): text = ax.text(j, i, harvest[i, j], ha="center", va="center", color="w") ax.set_title("Favourites") fig.tight_layout() plt.show() وتظهر نتيجة العرض هكذا: هناك الكثير من الميزات الاضافية مثل تغيير الالوان أو اظهار الأرقام كنسب أو رسم أكثر من خريطة حرارية سوية وهكذا ويمكنك الاستعانة ب seaborn لتوضيح قيمة كل لون يظهر في الرسمة عن طريق شريط جانبي هكذا: import numpy as np import seaborn as sns import matplotlib.pylab as plt data = np.random.rand(10, 12) ax = sns.heatmap(data, linewidth=0.5) plt.show() تم التعديل في 18 أكتوبر 2021 بواسطة Ahmed Sharshar اقتباس
السؤال
Ali Ismael
كيف يمكنني رسم خريطة حرارية في Matplotlib ؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.