Özet

Bu dökümanın amacı en azından temel bilgisayar kabiliyetlerine1 sahip olan kişileri olabilecek en hızlı bir şekilde R ile veri analizinde bir şeyler oluşturabilecek seviyeye getirebilmektir.

Gerekli kurulum adımlarını bir önceki dplyr dökümanında bulabilirsiniz. Bu dökümanda ggplot2 ile grafik oluşturma anlatılacaktır.

Hazırlık

dplyr dökümanında olduğu gibi bu dökümanda da 7 Haziran seçimleri Uşak ili verileriyle çalışacağız. İlgili hazırlık kodlarını aşağıda bulabilirsiniz.

#Bu kodlar sadece bazı genel ayarları içeriyor
#Veri alırken string formatındaki sütunları faktör gibi görme
options(stringsAsFactors=FALSE)
#Paketleri bu adresten yükle
options(repos="http://cran.rstudio.com/")
#Veri tablolarının bütün sütunlarını göster
options(dplyr.width = Inf)
#Ondalık veri gösterme formatı ile ilgili bir ayar
options(scipen = 7)

#Bu paket kullanacağımız verileri içeriyor
# devtools::install_github("berkorbay/secimler")

library(secimler)

#Yeni değişkenimizin adı usak_data olsun
usak_data <-
#secim_data değişkenini al
secim150607g %>%
#filtrele
#il Uşak olsun, toplam değerlerini de at
filter(il == "Uşak" & cevre_turu != "Toplam" & cevre_turu != "Cezaevi")

ggplot2’ya Giriş

ggplot2 R grafiklerinde görsel anlamda bir şölen yaşamak için kullanılabilecek en rahat pakettir. Sadece temel özelliklerinde bile güzel ve işlevsel görseller vermeyi başarırken sunduğu geniş seçeneklerle grafikleri parameterik olarak makyajlamayı sistematik bir hale getirmektedir2. Güzellikleri bununla da bitmeyen paket üzerine başka paketler de yazılmasına imkan vermektedir. Örneğin, ggthemes paketi ile grafiklerinizi tek satırlık bir komutla Financial Times veya Economist’te kullanılan formatlara büründürebilirken, ggnetwork paketi ile sadece grafikler değil ağ görselleştirmelerini de ggplot2 formatında yapabilirsiniz.

ggplot2’nin kendine has bir yapısı bulunmaktadır. Baştaki gg, “grammar of graphics” (grafiklerin dil bilgisi) anlamına gelmektedir. Bu yapının içerisinde şekiller (geometry, geom), veri sunumları (stat, stat), görseller (aesthetics, aes) ve ölçekler (scale, scale) gibi fonksiyonlar önemli yer tutmaktadır. Bu fonksiyonların içerisindeki başlıca parametreler ise data, x, y, fill, color, group, shape ve alphadır. Grafik komutları + sembolüyle birbirlerine bağlanır (bu durum dplyrdaki %>% operatörüne benzerdir).

Aşağıda örnek bir nokta grafigi icin bir ggplot2 ifadesi bulabilirsiniz. Canlı örneklerde tekrar edeceğiz.

ggplot(data=veri_seti,aes(x=yatay_element,y=dusey_element)) + geom_point(aes(color=grup_verisi)) + theme(legend.position="top")

Son olarak, grafikleri bir obje olarak saklayıp sonradan bu objelerin üzerine eklemeler yapabilirsiniz. Ayrıca komutu tek satırda değil birden çok satırda yazabilirsiniz (sadece + sembolünün satırın sonunda kaldığına emin olun) Örneğin yukarıdaki komut aşağıdaki şekilde yazılabilir.

grafigim <- ggplot(data=veri_seti,aes(x=yatay_element,y=dusey_element)) + geom_point(aes(color=grup_verisi))

grafigim +
theme(legend.position="top")

Nokta Grafiği (Scatter Plot)

Nokta grafiği geom_point fonksiyonuyla zahmetsizce yapılabilir. Diyelim ki, sandıklarda seçmen sayısı ve katılım oranı arasındaki ilişkiyi görmek istiyoruz. Bunun için önce her sandıkta seçime katılım oranını hesaplamamız gerekir. Daha sonra da ggplot

#Katılım oranını hesapla
usak_data <- usak_data %>% mutate(katilim_orani = oy_kullanan/kayitli_secmen)
#Grafiği çizdir
katilim_grafigi <-
ggplot(data=usak_data,aes(x=kayitli_secmen,y=katilim_orani)) + geom_point()

katilim_grafigi

Yukarıdaki grafikten görülebildiği kadarıyla hiçbir sandıkta %60ın altında bir katılım bulunmuyor, sandıkların büyük çoğunluğunda %80 üzerinde katılım var. Kayıtlı seçmen sayısı 200-300 arasında olan sandıklarda daha yüksek bir varyasyon var. En fazla sandık 300-400 seçmen aralığında bulunuyor. 6 sandıkta %100 katılım görülüyor. Bir grup sandıkta ise %100 üzeri bir katılım var. Bu katılım sebebi bazı sandık görevlilerinin ve güvenlik görevlilerinin (tutanak ile) kendi kayıtlı oldukları sandıklar dışında oy atmalarından veya kayıt hatasından kaynaklı olabilir.

Diyelim ki bir adım öteye geçmek istedik ve bu katılım oranlarını ilçelere ve seçim çevresine (köy, belde ve mahalle) göre gruplandırabilir miyiz ona bakacağız. Bu sefer geom_point içerisinde color=ilce, shape=cevre_turu parametresi ve değerini kullanacağız. Bu sayede ggplot2 veri setimize bakarak sandıkları bulunduğu ilçe ve seçim çevresi türüne göre farklılaştıracak.

#İlçelere göre renklendirilmiş grafik
katilim_grafigi <-
ggplot(data=usak_data,aes(x=kayitli_secmen,y=katilim_orani)) + geom_point(aes(color=ilce,shape=cevre_turu))

katilim_grafigi