ggplot Hakkında En Sık Sorulan Sorular

R ile veri görselleştirme işine giriştiyseniz, yolunuz bir şekilde ggplot2 paketi ile kesişiyor. R’ın kendi çekirdek fonksiyonlarına kıyasla, görsel açıdan daha zengin ve daha kişiselleştirilebilir sonuçlar üreten bu paketin detaylarına daha önce ggplot ile veri görselleştirme yazımızda değinmiştik. Bu yazımızda ise bu paketin detaylı kullanımına ve en sık karşılaşılan problemlerin çözümlerine değineceğiz. Başlıkları seçerken, Google’da konu ile ilgili en fazla sorulan soruları temel aldım. Paketin nasıl kurulacağını ve temel kullanımlarını önceki yazımızdan öğrenebilirsiniz. 

1. GGPlot’un Hazır Temaları

Tamamen kendi isteklerinize uygun bir tema oluşturmak zaman alan bir uğraş. Bunun yerine ggplot’un kendi içinde bulunan hazır temalarını deneyebilirsiniz. Bu hazır şablonları eklemek oldukça kolay. Beğendiğiniz şablonu theme() katmanı olarak eklemeniz yeterli. (örneğin + theme_minimal() şeklinde.)

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear)))
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_bw()
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_light()

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_dark()
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_minimal()
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_void()
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme_classic()

2. Grafik Başlıklarını Değiştirmek

Oluşturduğunuz grafiklerin başlıkları, otomatik olarak kullanılan data frame’in kolon adlarından çekilir. Bu isimleri kullanmak istemiyorsanız, labs() katmanı ile değiştirebilirsiniz. Hatta bu katman ile başlığı, altbaşlığı, altyazıyı ve legend başlığını bile değiştirebilirsiniz.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  labs(x = "X Ekseni",
       y = "Y Ekseni",
       title = "Ana Başlık",
       subtitle = "Alt Başlık",
       caption = "Altyazı",
       colour = "Lejand",
       tag = "A")

3. Eksen Değerlerini Değiştirmek

Grafiğinizdeki başlıkları değiştirmenin yetmediği durumlar olabilir. Örneğin, eksen değerlerini belirli bir açıyla döndürmek veya başlığın fontunu değiştirmek isteyebilirsiniz. Bu tür ince ayarlarda theme() katmanı kullanılır. Bu katman ile, eksen başlıklarından, değer çizgilerinin kalınlığına kadar çok fazla değişkeni düzenlemeniz mümkün. Bu başlıkta sadece eksen başlıklarına ve değerlerine göz atacağız. Tamamı için Modify components of a theme sayfasına göz atabilirsiniz.

Nesne Adı
İlgili Kısım
axis.text.x / axis.text.yEksen Değerleri
axis.title.x / axis.title.yEksen başlıkları
axis.line.x / axis.line.yEksenlerden çıkan çizgiler
axis.ticks.x / axis.ticks.yEksen değerlerinin kenar belirteçleri

Yukarıda bahsettiğimiz nesneleri, aşağıda belirttiğimiz parametrelere göre değiştirmek mümkün.

ParametreFonksiyonu
familyFontu değiştirir
faceFont alt tipini (kalın, italik vs.) belirler
sizeYazı boyutunu değiştirir
angleYazıyı açıyla döndürür
colourYazı rengini değiştirir
hjustYatay posizyonunu belirler
vjustDikey pozisyonu belirler

Hemen bir deneme yapalım. Aşağıdaki örnekte  X eksenini 45 derece döndürüp rengini koyu gri; y eksen değerlerini de 90 derece döndürüp gri yapalım.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme(axis.text.x = element_text(angle=45, colour = "darkgray"),
        axis.text.y = element_text(angle=90, colour = "gray")

İstediğimiz yaklaşmış olsak da, Y eksenindeki değerlerin döndürme sonrasında biraz aşağı kaydığını görebiliyoruz. Bunu düzeltmek için hjust= parametresi ile ince ayar yapabiliriz.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme(axis.text.x = element_text(angle=45, colour = "darkgray"),
        axis.text.y = element_text(angle=90, colour = "blue", hjust = 0.5))

4. Eksen Sınırlarını Belirlemek

Bazı durumlarda grafiğin tamamı yerine bir kısmını göstermek isteyebilirsiniz. Bu durumda xlim() veya ylim() katmanlarını kullanabilirsiniz. Bu katmanlar grafiği bir konuma göre yakınlaştırırken de yararlı oluyorlar.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  xlim(3,4) +
  ylim(15,25)

5. Regresyon Eğrisi Eklemek

Görselleştirdiğiniz X ve Y değerleri arasındaki ilişkiyi daha iyi anlamak için regresyon oluşturmak oldukça yararlıdır. Bu amaçla ggplot ile birlikte gelen geom_smooth() katmanını kullanabilirsiniz. Katman içindeki se= parametresi ile güven bölgesinin gösterimini (koyu gri renkli) açıp kapatabilirsiniz.

ggplot(mtcars,aes(x = wt, y = mpg)) + 
  geom_point() +
  geom_smooth(method='lm', col = "red", se=TRUE)

6. Legend’ı Kaldırmak

Grafiğin tam olarak anlaşılmasında elzem olsa da, Google’da en çok sorulan sorulardan biri, ggplot’tan legend’ın nasıl kaldırılacağı ile ilgili. Öncelikle grafiklerden Legend’ın kaldırılmaması gerektiğini bir kez daha hatırlatalım.   Eğer illa yoketmek istiyorsanız yine theme() katmanı ile bunu yapmak mümkün.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme(legend.position = "none")

Gördüğünüz gibi tamamen kaldırdık. Ama renklerin ne anlama geldiğini anlama şansımız artık yok. Tamamen kaldırmak yerine, grafiğin üst veya alt kısmına koymak çoğu durumda görsel açıdan da eski hali kadar göz yormuyor. Hatta bir veri noktasını örtmüyorsa grafik içine bile yerleştirebilirsiniz.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme(legend.position = "top")
ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  theme(legend.position = c(0.96, 0.8))

7. Facet (Bölünmüş Grafik) Oluşturmak

Farklı kategorileri, renklerle veya şekillerle belirlemek zorunda değilsiniz. Bunun yerine Facet adı verilen ve aynı eksenleri kullanılan ardışık grafikler halinde de farklı kategorileri gösterebilirsiniz.

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg)) +
  facet_grid(.~gear)

8. Grafikleri Kolayca Kaydetmek

ggplot ile oluşturulan tüm grafikleri ggsave() komutu ile kaydedebilirsiniz. Bu fonksiyon her ne kadar standardizasyon sağlasa da biraz üşendirici olabiliyor. Bunun yerine sürükle-bırak yaparak grafiğinizi dışarı aktarabilirsiniz.

Bunun için, Plot sekmesindeki Zoom ikonuna basmanız yeterli. Sonrasında açılan pencerede grafiğinizin boyutunu ayarladıktan sonra grafiği sürükleyip masaüstüne bırakarak hızlıca dışarı aktarabilirsiniz.


9. Düz Çizgi Eklemek

Grafiğinize, orjinden ya da herhangi başka bir konumdan geçen düz bir çizgi eklemek isteyebilirsiniz. Dikey çizgiler için geom_vline(); yatay çizgiler için geom_hline() ekleyebilirsiniz. 

ggplot(mtcars) + 
  geom_point(aes(x = wt, y = mpg, colour = factor(gear))) +
  geom_hline(yintercept = 20, color="blue") +
  geom_vline(xintercept = 2, color="brown", size=2, alpha=.5)

10. Logaritmiş Ölçek Kullanmak

Grafiğe dökülen değerlerin dağılımı çok fazla olduğu durumlarda, eksenler üzerinde logaritmik ölçekleri kullanmak daha avantajlı olabilir. Bu amaçla, scale_x_log10() ve scale_y_log10() katmanlarını kulanabiliriz.

ggplot(diamonds, aes(carat, price)) +
  geom_point(size=.1) +
  scale_y_log10()

Moleküler Biyolog ve Genetikçi.İstanbul Teknik Üniversitesi'nde doktora öğrencisi. 5 yıldır biyoinformatik ve yeni nesil dizileme üzerine çalışıyor. Genetik ve biyoinformatik üzerine Variant adlı blogda yazıyor.

Yorum bırakın:

Your email address will not be published.

Site Footer

Sliding Sidebar

Hakkımda

Hakkımda

Moleküler Biyolog ve Genetikçi. İstanbul Teknik Üniversitesi'nde doktora öğrencisi. 5 yıldır biyoinformatik ve yeni nesil dizileme üzerine çalışıyor.

Tweets

Please check your internet connection.