كيفية إنشاء خريطة حرارية للارتباط في لغة r (مع مثال)


يمكنك استخدام بناء الجملة الأساسي التالي لإنشاء خريطة حرارة الارتباط في R:

 #calculate correlation between each pairwise combination of variables
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cormat <- melt(cor_df)

#create correlation heatmap
ggplot(data = melted_cormat, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " blue ", high = " red ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank())

يوضح المثال التالي كيفية استخدام بناء الجملة هذا عمليًا.

مثال: إنشاء خريطة حرارة الارتباط في R

لنفترض أن لدينا إطار البيانات التالي في R الذي يعرض إحصائيات مختلفة لثمانية لاعبي كرة سلة مختلفين:

 #create data frame
df <- data. frame (points=c(22, 25, 30, 16, 14, 18, 29, 22),
                 assists=c(4, 4, 5, 7, 8, 6, 7, 12),
                 rebounds=c(10, 7, 7, 6, 8, 5, 4, 3),
                 blocks=c(12, 4, 4, 6, 5, 3, 8, 5))

#view data frame
df

  points assists rebounds blocks
1 22 4 10 12
2 25 4 7 4
3 30 5 7 4
4 16 7 6 6
5 14 8 8 5
6 18 6 5 3
7 29 7 4 8
8 22 12 3 5

لنفترض أننا نريد إنشاء خريطة حرارة ارتباط لتصور معامل الارتباط بين كل مجموعة زوجية من المتغيرات في إطار البيانات.

قبل إنشاء خريطة الارتباط الحرارية، نحتاج أولاً إلى حساب معامل الارتباط بين كل متغير باستخدام cor() ثم تحويل النتائج إلى تنسيق قابل للاستخدام باستخدام وظيفة Melt() الخاصة بالحزمة reshape2 :

 library (reshape2)

#calculate correlation coefficients, rounded to 2 decimal places
cor_df <- round(cor(df), 2)

#melt the data frame
melted_cor <- melt(cor_df)

#view head of melted data frame
head(melted_cor)

      Var1 Var2 value
1 points points 1.00
2 assist points -0.27
3 rebound points -0.16
4 block points 0.10
5 assist points -0.27
6 assists assists 1.00

بعد ذلك، يمكننا استخدام الدالة Geom_tile() من الحزمة ggplot2 لإنشاء خريطة حرارة الارتباط:

 library (ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " blue ", high = " red ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank()) 

خريطة الحرارة الارتباطية في R

والنتيجة هي خريطة حرارة الارتباط التي تسمح لنا بتصور معامل الارتباط بين كل مجموعة زوجية من المتغيرات.

في هذه الخريطة الحرارية المحددة، تأخذ معاملات الارتباط الألوان التالية:

  • باللون الأزرق إذا كانت مغلقة عند -1
  • الأبيض إذا كانت مغلقة إلى 0
  • أحمر إذا كانوا قريبين من 1

لا تتردد في استخدام الألوان التي تريدها للوسيطات المنخفضة والعالية في وظيفة scale_fill_gradient2() .

على سبيل المثال، يمكنك استخدام “أحمر” للقيمة المنخفضة و”أخضر” للقيمة العالية:

 library (ggplot2)

#create correlation heatmap
ggplot(data = melted_cor, aes(x=Var1, y=Var2, fill=value)) + 
  geom_tile() +
  geom_text(aes(Var2, Var1, label = value), size = 5 ) +
  scale_fill_gradient2(low = " red ", high = " green ",
                       limit = c(-1,1), name=" Correlation ") +
  theme(axis. title . x = element_blank(),
        axis. title . y = element_blank(),
        panel. background = element_blank()) 

خريطة حرارة الارتباط في R بألوان مخصصة

ملاحظة : يمكنك أيضًا تحديد رموز الألوان السداسية العشرية لاستخدامها إذا كنت تريد مزيدًا من التحكم في الألوان الدقيقة في الخريطة الحرارية للارتباط.

مصادر إضافية

تشرح البرامج التعليمية التالية كيفية تنفيذ المهام الشائعة الأخرى في ggplot2:

كيفية تدوير تسميات المحور في ggplot2
كيفية تعيين فواصل المحور في ggplot2
كيفية تعيين حدود المحور في ggplot2
كيفية تغيير تسميات الأسطورة في ggplot2

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *