Bir önceki bölümde atölyemizde temel ama işlevsel grafikler ürettik. Bu grafikler, verinin hikayesini fısıldıyorlar, evet. Ama bu bölümde, o fısıltıyı, herkesin duyabileceği güçlü bir sese dönüştüreceğiz.
Bu bölümde, ham bir grafiği alıp, ona “cila” ve “vernik” atarak, birer galeri parçasına dönüştüreceğiz. Her adımda, yaptığımız küçük bir dokunuşun, grafiğin anlattığı hikayeyi nasıl daha güçlü kıldığını “öncesi ve sonrası” ile birlikte göreceğiz.
Bu karşılaştırmaları yapabilmek için, atölyemize yeni bir alet
ekliyoruz: patchwork
paketi. Bu paket,
birden fazla ggplot
grafiğini +
veya
/
gibi basit operatörlerle birleştirmemizi sağlar. (Eğer
yüklü değilse: install.packages("patchwork")
)
library(tidyverse)
library(patchwork)
Bu atölyede, mpg
veri setinden oluşturduğumuz basit bir
saçılım grafiğini, yani “ham elmasımızı” adım adım işleyerek bir
pırlantaya dönüştüreceğiz.
# Bu atölye boyunca temel alacağımız "ham elmasımız"
p_ham <- ggplot(mpg, aes(x = displ, y = hwy, color = class)) +
geom_point()
labs()
ile Hikayeyi AnlatmakBir grafik, başlığı ve etiketleri olmadan kimliksizdir.
labs()
fonksiyonu, grafiğimize bir “künye” ekleyerek onun
ne hakkında olduğunu, eksenlerin ne anlama geldiğini ve verinin nereden
geldiğini net bir şekilde anlatır.
# Etiketleri eklediğimiz yeni grafiğimizi oluşturalım
p_etiketli <- p_ham +
labs(
title = "Motor Hacmi ve Yakit Verimliligi Iliskisi",
subtitle = "Farkli Arac Siniflarina Gore Incelenmistir",
x = "Motor Hacmi (Litre)",
y = "Otoyol Yakit Verimliligi (MPG)",
color = "Arac Sinifi", # Lejant(legend) basligini da buradan degistiriyoruz!
caption = "Veri Kaynagi: R ggplot2 paketi icerisindeki 'mpg' veri seti"
)
# "Öncesi" ve "Sonrası"nı yan yana görelim
p_ham + p_etiketli
Once (Etiketsiz) ve Sonra (Etiketli)
Gördüğünüz gibi, sadece labs()
katmanını eklemek bile,
grafiği anlık bir görüntü olmaktan çıkarıp, kendi hikayesini anlatan
bilgilendirici bir görsele dönüştürdü.
scale_color_brewer()
ile Renkleri
Uyumlaştırmaggplot2
’nin varsayılan renkleri işlevseldir, ancak bazen
hikayemize daha uygun, estetik olarak daha dengeli veya renk körü dostu
paletler kullanmak isteyebiliriz.
p_renkli <- p_etiketli +
scale_color_brewer(palette = "Set2")
# "Set2", kategorik veriler için tasarlanmış popüler bir palettir.
p_etiketli + p_renkli
Önce (Varsayılan Renkler) ve Sonra (Brewer Paleti)
theme()
ile Ortamı
Değiştirmetheme()
fonksiyonu, grafiğimizin bir sanat eseri gibi
sergileneceği “galerinin” duvar renginden, etiketlerin yazı tipine kadar
her detayını kontrol etmemizi sağlar.
p_final <- p_renkli +
theme_bw() + # Önce temiz bir tema seçelim
theme( # Sonra ince ayarlar yapalım
legend.position = "bottom",
plot.title = element_text(face = "bold", size = 13, hjust = 0.5),
plot.subtitle = element_text(hjust = 0.5)
)
p_renkli + p_final
Önce (Varsayılan Tema) ve Sonra (Kişiselleştirilmiş Tema)
Şimdi aynı “güzelleştirme” adımlarını, farklı bir geometri olan kutu
grafiği (geom_boxplot
) üzerinde uygulayarak, bu tekniklerin
ne kadar evrensel olduğunu görelim.
# Bu atölyedeki "ham elmasımız": Farklı sınıfların yakıt verimliliği dağılımı
kutu_ham <- ggplot(mpg, aes(x = class, y = hwy)) +
geom_boxplot()
labs()
ve
coord_flip()
Önce grafiğimize bir kimlik kazandıralım ve uzun etiketlerin daha iyi
okunması için coord_flip()
ile eksenleri çevirelim.
kutu_etiketli <- kutu_ham +
coord_flip() +
labs(
title = "Arac Siniflarina Gore Yakit Verimliligi Dagilimi",
x = "Arac Sinifi",
y = "Otoyol Yakit Verimliligi (MPG)"
)
kutu_baslik_kucuk <- kutu_etiketli +
theme(
plot.title = element_text(size = 13),# size argümanı ile boyutu ayarlıyoruz.
)
kutu_ham + kutu_baslik_kucuk
Once (Ham Kutu Grafigi) ve Sonra (Etiketli ve Cevrilmis)
aes(fill = ...)
Kutu grafiklerinin içini doldurmak için color
yerine
fill
estetiğini kullanırız.
# Ham grafiğimizi en baştan, fill estetiği ekleyerek yeniden oluşturalım
kutu_renkli_ham <- ggplot(mpg, aes(x = class, y = hwy, fill = class)) +
geom_boxplot() +
coord_flip() +
labs(
title = "Arac Siniflarina Gore Yakit Verimliligi Dagilimi",
x = "Arac Sinifi",
y = "Otoyol Yakit Verimliligi (MPG)"
) +
theme(legend.position = "none",
# Eksenlerde zaten sınıf isimleri var, lejant(legend) gereksiz
plot.title = element_text(size = 12)
)
kutu_etiketli + kutu_renkli_ham
Önce (Renksiz) ve Sonra (Renkli)
Şimdi, her iki atölye çalışmasında da adım adım işlediğimiz nihai eserlerimizi bir arada sergileyelim.
p_final / kutu_renkli_ham # patchwork sayesinde `/` operatörü grafikleri alt alta koyar
İki Farklı Geometri, Aynı Güzelleştirme Felsefesi
İşte dostlar! Bu yolculuk bize şunu gösterdi: labs
,
scale
ve theme
gibi “cila” katmanları, hangi
geometrik şekli kullanırsak kullanalım evrensel olarak çalışır. Artık
sadece bir grafik çizmeyi değil, o grafiği bir hikaye anlatacak şekilde
nasıl “tasarlayacağınızı” da biliyorsunuz.
Şimdiye kadar hep tek bir tuval üzerinde çalıştık. Peki ya birden fazla grafiği, bir sergi duvarı gibi, aynı anda sunmak isteseydik?
Bir sonraki durağımız, patchwork
paketinin gücünü kullanarak, farklı sanat eserlerimizi bir araya getirip
anlamlı bir “sergi” (dashboard) oluşturmak olacak. Atölyenin küratörlük
kısmı şimdi başlıyor! Lütfen takipte kalın dostlar.