R'de korelasyon isı haritası nasıl oluşturulur (örnekle)
R’de bir korelasyon ısı haritası oluşturmak için aşağıdaki temel sözdizimini kullanabilirsiniz:
#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())
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: R’de Korelasyon Isı Haritası Oluşturma
R’de sekiz farklı basketbol oyuncusu için çeşitli istatistikleri gösteren aşağıdaki veri çerçevesine sahip olduğumuzu varsayalım:
#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
Veri çerçevesindeki değişkenlerin her ikili kombinasyonu arasındaki korelasyon katsayısını görselleştirmek için bir korelasyon ısı haritası oluşturmak istediğimizi varsayalım.
Korelasyon ısı haritasını oluşturmadan önce, öncelikle cor() kullanarak her değişken arasındaki korelasyon katsayısını hesaplamamız ve ardından paketin melt() fonksiyonu reshape2’yi kullanarak sonuçları kullanılabilir bir formata dönüştürmemiz gerekir:
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
Daha sonra, bir korelasyon ısı haritası oluşturmak için ggplot2 paketindeki geom_tile() işlevini kullanabiliriz:
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())
Sonuç, değişkenlerin her ikili kombinasyonu arasındaki korelasyon katsayısını görselleştirmemize olanak tanıyan bir korelasyon ısı haritasıdır.
Bu özel ısı haritasında korelasyon katsayıları aşağıdaki renkleri alır:
- -1’e kapalıysa mavi
- 0’a kapalıysa beyaz
- 1’e yakınsa kırmızı
Scale_fill_gradient2() işlevindeki düşük ve yüksek argümanlar için istediğiniz renkleri kullanmaktan çekinmeyin.
Örneğin, düşük değer için “kırmızı”yı ve yüksek değer için “yeşil”i kullanabilirsiniz:
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())
Not : Korelasyon ısı haritasındaki tam renkler üzerinde daha fazla kontrol istiyorsanız, kullanılacak onaltılı renk kodlarını da belirtebilirsiniz.
Ek kaynaklar
Aşağıdaki eğitimler ggplot2’de diğer genel görevlerin nasıl gerçekleştirileceğini açıklamaktadır:
Ggplot2’de eksen etiketleri nasıl döndürülür
Ggplot2’de eksen sonları nasıl ayarlanır
Ggplot2’de eksen sınırları nasıl ayarlanır?
Ggplot2’de efsane etiketleri nasıl değiştirilir?