Ana içeriğe atla

R'de İki Değişkenli Dağılım Isı Haritaları

İki özelliğin ilişkisini görsel olarak nasıl göstereceğinizi, birbirleriyle nasıl etkileştiklerini ve veri noktalarının nerede yoğunlaştığını öğrenin.
Güncel 3 Eki 2026  · 6 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Bir veri bilimci olarak veri kümenizindeki özelliklerin dağılımını analiz etmeniz gerekir. Genellikle bu, histogramlar kullanılarak yapılır; değişkenin değer aralığını, sapmasını ve değerlerin nerede yoğunlaştığını göstermek için oldukça kullanışlıdır.

Bu eğitim R kullanır. Eğer R ile henüz tanışmadıysanız, DataCamp’teki ücretsiz R’ye Giriş kursumuzu almanızı öneririm.

Bisiklet Paylaşımı Veri Kümesi

Bu eğitim için bir Kaggle yarışmasından Bike Sharing Demand Dataset veri kümesini kullanacaksınız.

Bağlantıyı takip edin ve data sekmesine gidin, ardından train.csv dosyasını indirin.

bisiklet paylaşımı verisi

Veri kümesini R’ye yükleyin.

library(dplyr)
bike<- read.csv("train.csv",
                na.strings = FALSE,
                strip.white = TRUE)
glimpse(bike)

Veri Kümesi Özellikleri

Özellik Açıklama
datetime saatlik tarih + zaman damgası
season 1 = ilkbahar
2 = yaz
3 = sonbahar
4 = kış
holiday günün resmi tatil olup olmadığı
workingday günün hafta sonu ya da resmi tatil olmaması durumu
weather 1: Açık, Az bulutlu, Parçalı bulutlu, Parçalı bulutlu
2: Sis + Bulutlu, Sis + Parçalı bulutlar, Sis + Az bulutlu, Sis
3: Hafif kar, Hafif yağmur + Gök gürültülü fırtına + Dağınık bulutlar, Hafif yağmur + Dağınık bulutlar
4: Sağanak yağmur + Buz tanecikleri + Gök gürültülü fırtına + Sis, Kar + Sis
temp Santigrat cinsinden sıcaklık
atemp hissedilen sıcaklık (°C)
humidity bağıl nem
windspeed rüzgar hızı
casual kayıtlı olmayan kullanıcı kiralamalarının sayısı
registered kayıtlı kullanıcı kiralamalarının sayısı
count toplam kiralama sayısı

Özellik Seçimi

season bazında atemp ve humidity arasındaki ilişkiyi analiz edeceksiniz, bu nedenle veri kümesinden bunları seçin. dplyr paketini yüklemeyi unutmayın.

bike_data<-
  bike %>%  
  dplyr::select(season, atemp, humidity)
head(bike_data)

Histogramlar

Tamam, artık veriyi analiz etmeye hazırsınız; sezona göre her bir özellik için bir histogram oluşturmakla başlayın. Bunu ggplot2 kütüphanesini kullanarak yapacaksınız, bu yüzden yüklemeyi unutmayın.

Nem Histogramı

library(ggplot2)
bike_data %>%
  ggplot( aes(x=humidity) ) +
  geom_histogram(bins=30) +
  facet_wrap(~season,ncol = 2)

histogramlar

Histogram ile kış aylarında nemin daha yüksek olduğunu (ki bu beklenen bir durum) görebilirsiniz; ayrıca her mevsimde nasıl dağıldığına dair bir fikir edinebilirsiniz.

Şimdi yoğunluğu, bir yoğunluk halısını ekleyin ve bölme adlarını değiştirin; böylece görselleştirme daha iyi görünsün.

bike_data %>%
  mutate(season_label = case_when(
    season == 1 ~ "Spring",
    season == 2 ~ "Summer",
    season == 3 ~ "fall",
    season == 4 ~ "winter")) %>%
  ggplot( aes(x=humidity) ) +
  geom_histogram(bins=30,aes(y = ..density..)) +
  geom_rug()+
  geom_density()+
  facet_wrap(~season_label,ncol = 2)+
  ggtitle("Histogram of humidity by season")

mevsime göre nem histogramı

Bu, nemin nasıl davrandığına dair daha iyi bir his veriyor; aynı işlemi atemp için de yapın.

atemp Histogramı

Yukarıdaki kodu yeniden kullanın ve değişkeni atemp olarak değiştirin,

bike_data %>%
  mutate(season_label = case_when(
    season == 1 ~ "Spring",
    season == 2 ~ "Summer",
    season == 3 ~ "fall",
    season == 4 ~ "winter")) %>%
  ggplot( aes(x=atemp) ) +
  geom_histogram(bins=30,aes(y = ..density..)) +
  geom_rug()+
  geom_density()+
  facet_wrap(~season_label,ncol = 2)+
  ggtitle("Histogram of atemp by season")
Mevsime göre atemp histogramımevsime göre atemp histogramı

Buraya kadar her şey yolunda; her mevsim için beklediğiniz gibi. Her grafikte olasılık dağılım fonksiyonunun bir yaklaşımı bulunuyor.

Ancak bu grafiklere dayanarak özelliklerin birbirleriyle nasıl etkileştiğini görselleştirmek zor. Karşılaştığınız ilk zorluk, histogramınızın 3B olması gerektiği; çünkü iki özellik için dağılım fonksiyonunu bulmaya çalışıyorsunuz.

Verinize İki Değişkenli Bir Dağılım Uydurma

Amacınız iki değişkenli dağılımı görselleştirmek; bunu yapabilmek için önce veriye iki değişkenli bir dağılım uydurmanız gerekir. Bu işlem MASS kütüphanesi ve kde2d fonksiyonu kullanılarak yapılacak. kde2d fonksiyonu, rassal değişkenler için normallik varsayımı altında iki değişkenli dağılımı tahmin eder. Bu fonksiyonun girdileri aşağıdaki gibidir,

girdi açıklama
x x koordinat verisi
y y koordinat verisi
n her eksen için ızgara noktası sayısı
lims x ve y için sınırlar

Şimdi bunu yaz ayları için filtreleyerek veri kümesine uygulayın,

library(MASS)
bike_data_summer <- bike_data %>% filter(season==1)
bike_density <- kde2d(bike_data_summer$atemp,bike_data_summer$humidity, n=1000)

Not: MASS kütüphanesini yüklediğinizde bir select fonksiyonu ile gelir; bu, dplyr’ın select fonksiyonu ile çakışır. Bunu düzeltmek için dplyr’ın select fonksiyonunu kullanırken başına dplyr:: eklemelisiniz; örneğin doğru çalışması için dplyr::select() şeklinde.

Şimdi bike_density’nin sınıfına ve yapısına bakın

class(bike_density)
str(bike_density)

Bu, 3 değere (x, y ve z) sahip bir listedir. İlk ikisi özellik değerlerini içerir, üçüncüsü ise olasılık yoğunluk fonksiyonu (pdf) değerlerini içeren bir matristir. contour fonksiyonunu kullanarak yoğunluğa göz atın,

contour(bike_density)
text(12.2,92,"1",cex=1.5)
points(12.2,89,col="red",pch=18)
text(10.4,47,"2",cex=1.5)
points(10.4,43,col="red",pch=18)
text(21,45,"3",cex=1.5)
points(21,40,col="red",pch=18)
text(21.6,82,"4",cex=1.5)
points(21.6,78,col="red",pch=18)

grafik

Buna bakarak, iki özelliğin birleşimi için en sık görülen değerlere karşılık gelebilecek bazı birikim noktalarını belirleyebilirsiniz. Her bir noktanın değerleri aşağıdaki tabloda özetlenmiştir,

nokta atemp (°C) nem (%)
1 12.2 89
2 10.4 43
3 21 43
4 21.6 78

Isı Haritası

Isı haritanızı oluşturmak için önce kullanmak istediğiniz renk ölçeğini tanımlamanız gerekir; bunu colorRampPalette fonksiyonunu kullanarak yapabilirsiniz

hm_col_scale<-colorRampPalette(c("black","blue","green","orange","red"))(1000)

hm_col_scale, siyah ile kırmızı arasında RGB kodlarını kullanarak 1000 adımda ilerleyen bir vektördür.

Şimdi image fonksiyonunu kullanarak ısı haritanızı çizin; bu fonksiyon matrisleri çizmek için kullanılır.

image(bike_density$z,  
      col = hm_col_scale,
      zlim=c(min(bike_density$z), max(bike_density$z)))
text(0.31,0.46,"Most Frequent",col="blue",cex=0.8)
points(0.31,0.45,col="blue",pch=18)

ısı haritası

Gördüğünüz gibi bu, kontur grafiğinden daha fazla bilgi sunuyor; çünkü artık renkler birikim noktasının ne kadar yüksek olduğunu gösteriyor. İlkbahar sırasında nem ve atemp için en sık görülen değerlerin yaklaşık olarak (10.4, 43) noktasında olduğunu görebilirsiniz.

Sonuç

Artık bir ısı haritası oluşturmayı biliyorsunuz; sıra sizde. Diğer mevsimlere ve diğer değişkenlerle olan ilişkilere bakarak başlayın.

En sık görülen noktaların daha yüksek olasılığa sahip olduğu gerçeğine dayanarak, değişkenlerin farklı değerleri için kaç bisiklet tedarik etmeniz gerektiğine dair içgörü elde etmek için bunu nasıl kullanabileceğinizi düşünün.

ggplot ile veri görselleştirme hakkında daha fazla bilgi edinmek isterseniz, ggplot2 ile Veri Görselleştirme kursumuza göz atmayı unutmayın.

Konular
R
Veri Bilimi
Veri Görselleştirme

R hakkında daha fazlasını öğrenin

Kurs

R’ye Giriş

4 sa
3.1M
Vektörler, listeler ve veri çerçeveleri de dahil olmak üzere R'da veri analizinin temellerini öğrenin ve gerçek veri setleriyle R pratiği yapın.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör