R Notları #3: Çoklu Değişkenleri Tek Grafikte Ele Almak

R’da ggplot kütüphanesi bizlere görselleştirme yaparken geniş bir katalog sunuyor ve “Ggplot” ile verileri görselleştirmenin çeşitli yolları bulunuyor. Başlangıç için linke eklediğim ggplot2 katalog bu konuda yol gösterici olacaktır.

Bu bölümde kategorik ve çoklu sürekli değişkenlerin bulunduğu bir veri setini nasıl görselleştirebileceğimizi aktarmaya çalışıyorum. Katalogda bulunan kodlar arasında yer almayan, 5 sürekli değişkenin olduğu veri setini görselleştirmeden önce, bir veri seti oluşturalım:

datanotlar3 <- data.frame(nesil = c("X", "Y", "BB", "Z", "S", "S", "Y", "BB", "Z", "S", "X", "Y", "Z", "BB", "Z"),
                   gazete = c(4, 2, 7, 1, 9, 8, 1, 8, 3, 5, 3, 5, 1, 4, 5),
                   radyo = c(6, 6, 3, 8, 4, 5, 5, 3, 5, 8, 2,  4, 5, 3, 5),
                   televizyon = c(6, 5, 8, 1, 9, 6, 5, 4, 2, 8, 4,  6, 3, 2, 1),
                   telefon = c(9, 6, 8, 5, 9, 4, 5, 8, 9, 8, 7,  8, 9, 8, 7),
                   dergi = c(3, 2, 4, 2, 3, 5, 5, 7, 3, 8, 4,  6, 7, 5, 7)) 

Görüştüğümüz 15 kişiye yaşlarını sorduğumuzu ve iletişim araçlarıyla ilişkilerini 10 üzerinden değerlendirmeleri istediğimizi düşünelim. Bu hayali görüşmelerden elde ettiğimiz bilgileri data.frame komutu ile yukarıdaki veri setine dönüştürelim. Bu veri setinin tablo görünümünü aşağıda paylaşıyorum:

nesil
<fctr>
gazete
<dbl>
radyo
<dbl>
televizyon
<dbl>
telefon
<dbl>
dergi
<dbl>
X46693
Y26562
BB73884
Z18152
S94993
S85645
Y15555
BB83487
Z35293
S58888
X32474
Y54686
Z15397
BB43285
Z55177

Oluşturduğumuz veri seti uzunca bir tabloya dönüştü. Fakat bizim istediğimiz basit bir görselleştirme üzerinden durumu görmek. Bunun için kullanmamız gereken komutlar şöyle olmalı:

library("ggplot2")

ggplot(datanotlar3, aes(nesil, y = value)) + 
  geom_jitter(aes(y = gazete, col = "gazete")) + 
  geom_jitter(aes(y = radyo, col = "radyo")) + 
  geom_jitter(aes(y = televizyon, col = "televizyon")) + 
  geom_jitter(aes(y = telefon, col = "telefon")) + 
  geom_jitter(aes(y = dergi, col = "dergi"))

Öncelikle library komutuyla “ggplot” kütüphanesini çalıştırdım. Eğer bu kütüphane sizde yoksa install.packages komutu ile bu kütüphaneyi indirmelisiniz. Daha sonra her sürekli değişken için ayrı ayrı geom_jitter fonksiyonunu kullandım. Ortaya çıkan manzara şu şekilde:

indir

Şimdi yukarıdaki grafiğe bakınca çıkarımlar yapmak daha kolay oldu. Görselde “minik” oynamalar yapmak istiyorum. Öncelikle labs komutunu kullanarak isimleri değiştirelim:

datanotlar3 <- data.frame(nesil = c("X", "Y", "BB", "Z", "S", "S", "Y", "BB", "Z", "S", "X", "Y", "Z", "BB", "Z"),
                   gazete = c(4, 2, 7, 1, 9, 8, 1, 8, 3, 5, 3, 5, 1, 4, 5),
                   radyo = c(6, 6, 3, 8, 4, 5, 5, 3, 5, 8, 2,  4, 5, 3, 5),
                   televizyon = c(6, 5, 8, 1, 9, 6, 5, 4, 2, 8, 4,  6, 3, 2, 1),
                   telefon = c(9, 6, 8, 5, 9, 4, 5, 8, 9, 8, 7,  8, 9, 8, 7),
                   dergi = c(3, 2, 4, 2, 3, 5, 5, 7, 3, 8, 4,  6, 7, 5, 7)) 


library("ggplot2")

ggplot(datanotlar3, aes(nesil, y = value)) + 
  geom_jitter(aes(y = gazete, col = "gazete")) + 
  geom_jitter(aes(y = radyo, col = "radyo")) + 
  geom_jitter(aes(y = televizyon, col = "televizyon")) + 
  geom_jitter(aes(y = telefon, col = "telefon")) + 
  geom_jitter(aes(y = dergi, col = "dergi")) + labs(color="Kategoriler") + labs(y="Değer")

Daha sonra x ekseninde yer alan nesillerin sıralarını düzeltmemiz gerekiyor. Burada ise xlim komutunu kullanacağız:

datanotlar3 <- data.frame(nesil = c("X", "Y", "BB", "Z", "S", "S", "Y", "BB", "Z", "S", "X", "Y", "Z", "BB", "Z"),
                   gazete = c(4, 2, 7, 1, 9, 8, 1, 8, 3, 5, 3, 5, 1, 4, 5),
                   radyo = c(6, 6, 3, 8, 4, 5, 5, 3, 5, 8, 2,  4, 5, 3, 5),
                   televizyon = c(6, 5, 8, 1, 9, 6, 5, 4, 2, 8, 4,  6, 3, 2, 1),
                   telefon = c(9, 6, 8, 5, 9, 4, 5, 8, 9, 8, 7,  8, 9, 8, 7),
                   dergi = c(3, 2, 4, 2, 3, 5, 5, 7, 3, 8, 4,  6, 7, 5, 7)) 


library("ggplot2")

ggplot(datanotlar3, aes(nesil, y = value)) + 
  geom_jitter(aes(y = gazete, col = "gazete")) + 
  geom_jitter(aes(y = radyo, col = "radyo")) + 
  geom_jitter(aes(y = televizyon, col = "televizyon")) + 
  geom_jitter(aes(y = telefon, col = "telefon")) + 
  geom_jitter(aes(y = dergi, col = "dergi")) + labs(color="Kategoriler") + labs(y="Değer")
xlim("S", "BB", "X", "Y", "Z")

Son olarak ise estetik bir değişiklik yapmamız, görseli daha karakteristik bir biçime dönüştürecektir. Burada ise öncelikle “ggthemes” kütüphanesini kurmamız gerekiyor. Daha sonra ise dönüştürmek istediğimiz temanın fonksiyonlarını kullanacağız:

datanotlar3 <- data.frame(nesil = c("X", "Y", "BB", "Z", "S", "S", "Y", "BB", "Z", "S", "X", "Y", "Z", "BB", "Z"),
                   gazete = c(4, 2, 7, 1, 9, 8, 1, 8, 3, 5, 3, 5, 1, 4, 5),
                   radyo = c(6, 6, 3, 8, 4, 5, 5, 3, 5, 8, 2,  4, 5, 3, 5),
                   televizyon = c(6, 5, 8, 1, 9, 6, 5, 4, 2, 8, 4,  6, 3, 2, 1),
                   telefon = c(9, 6, 8, 5, 9, 4, 5, 8, 9, 8, 7,  8, 9, 8, 7),
                   dergi = c(3, 2, 4, 2, 3, 5, 5, 7, 3, 8, 4,  6, 7, 5, 7)) 


library("ggplot2")
install.packages("ggthemes")
library("ggthemes")

ggplot(datanotlar3, aes(nesil, y = value)) + 
  geom_jitter(aes(y = gazete, col = "gazete")) + 
  geom_jitter(aes(y = radyo, col = "radyo")) + 
  geom_jitter(aes(y = televizyon, col = "televizyon")) + 
  geom_jitter(aes(y = telefon, col = "telefon")) + 
  geom_jitter(aes(y = dergi, col = "dergi"+
  labs(color="Kategoriler") + labs(y="Değer") + xlim("S", "BB", "X", "Y", "Z") + theme_economist() + scale_colour_economist()))

Son değişikliklerle birlikte ortaya çıkan görselimizi paylaşıyorum:

f1

Bu çalışmada olduğu gibi görselleştirme denemelerini ve örneklerini paylaşmaya devam edeceğim. İleri seviye örnekler için ise benim de yararlandığım aşağıdaki üç kaynağın okunmasında yarar görüyorum:

Beautiful plotting in R: A ggplot2 cheatsheet

ggplot2: Elegant Graphics for Data Analysis

ggthemes: Extra themes for ggplot

88x31

Yorum bırakın

Aşağıya bilgilerinizi girin veya oturum açmak için bir simgeye tıklayın:

WordPress.com Logosu

WordPress.com hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Twitter resmi

Twitter hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Facebook fotoğrafı

Facebook hesabınızı kullanarak yorum yapıyorsunuz. Çıkış  Yap /  Değiştir )

Connecting to %s