आर में सहसंबंध हीटमैप कैसे बनाएं (उदाहरण के साथ)


आप आर में सहसंबंध ताप मानचित्र बनाने के लिए निम्नलिखित मूल वाक्यविन्यास का उपयोग कर सकते हैं:

 #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())

निम्नलिखित उदाहरण दिखाता है कि व्यवहार में इस वाक्यविन्यास का उपयोग कैसे करें।

उदाहरण: आर में एक सहसंबंध हीटमैप बनाएं

मान लीजिए कि हमारे पास आर में निम्नलिखित डेटा फ्रेम है जो आठ अलग-अलग बास्केटबॉल खिलाड़ियों के लिए विभिन्न आंकड़े दिखाता है:

 #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

इसके बाद, हम सहसंबंध हीटमैप बनाने के लिए ggplot2 पैकेज से geom_tile() फ़ंक्शन का उपयोग कर सकते हैं:

 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()) 

आर में सहसंबंध हीटमैप

परिणाम एक सहसंबंध हीटमैप है जो हमें चर के प्रत्येक जोड़ीदार संयोजन के बीच सहसंबंध गुणांक की कल्पना करने की अनुमति देता है।

इस विशेष ताप मानचित्र में, सहसंबंध गुणांक निम्नलिखित रंगों पर आधारित होते हैं:

  • नीला यदि वे -1 पर बंद हैं
  • सफ़ेद यदि वे 0 पर बंद हैं
  • लाल यदि वे 1 के करीब हैं

स्केल_फिल_ग्रेडिएंट2() फ़ंक्शन में निम्न और उच्च तर्कों के लिए आप जो भी रंग चाहते हैं, उसका बेझिझक उपयोग करें।

उदाहरण के लिए, आप कम मूल्य के लिए “लाल” और उच्च मूल्य के लिए “हरा” का उपयोग कर सकते हैं:

 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()) 

कस्टम रंगों के साथ आर में सहसंबंध हीटमैप

नोट : यदि आप सहसंबंध ताप मानचित्र में सटीक रंगों पर और भी अधिक नियंत्रण चाहते हैं तो आप उपयोग के लिए हेक्साडेसिमल रंग कोड भी निर्दिष्ट कर सकते हैं।

अतिरिक्त संसाधन

निम्नलिखित ट्यूटोरियल बताते हैं कि ggplot2 में अन्य सामान्य कार्य कैसे करें:

Ggplot2 में अक्ष लेबल को कैसे घुमाएँ
Ggplot2 में अक्ष विराम कैसे सेट करें
Ggplot2 में अक्ष सीमा कैसे निर्धारित करें
Ggplot2 में लेजेंड लेबल कैसे बदलें

एक टिप्पणी जोड़ने

आपका ईमेल पता प्रकाशित नहीं किया जाएगा. आवश्यक फ़ील्ड चिह्नित हैं *