[1] "Hello world!"

Veri görselleştirme bir süsleme değil; analitik bir araçtır.
İnsan zihni, tablo veya sayı okumak için değil, görsel alanda (doğada) örüntü tanımak için optimize edilmiştir.

Kendini R’a tanıtabilir misin?
Önce kullanmak istediğimiz paketleri yüklemeliyiz.
tibble olarak göster: tibble verimizi görmenin güzel bir yolu. -> earnings ile “bu veri setini belleğe (RAM) kaydet, istediğimde earnings yazarak kullanayım” diyoruz.
Verinin nasıl göründüğüne bakalım. İki yol var:
# A tibble: 200 × 3
id gender income
<int> <chr> <dbl>
1 1 Male 19376.
2 2 Male 9540.
3 3 Male 10501.
4 4 Male 26262.
5 5 Male 23313.
6 6 Male 15835.
7 7 Male 12728.
8 8 Female 22247.
9 9 Female 41456.
10 10 Male 16254.
# ℹ 190 more rows
Sayısal değişkenler hakkında değişken adlarını ve bilgileri görmek için summary() fonksiyonunu kullanıyoruz.
Yani R’a şunu söylememiz gerekiyor:
earnings adlı veri setimi al%>%)summary() fonksiyonunu kullarak ver.Sayısal olmayan değişkenler (cinsiyet gibi) için R’a şunu söylüyoruz:
earnings adlı veri setimi al ve şunu yap ( %>% ).
Görmek istediğimiz değişken adı hakkında istatistik göstermek için tabyl({değişken adı}) uygula. tabyl() fonksiyonunu gender adlı sayısal olmayan değişkenimize uygulamak istiyoruz.
Gelirin nasıl dağıldığını bulmaya çalışıyoruz.
Gelir sürekli (continious) bir değişken.
Sürekli bir değişkenin nasıl dağıldığını görmek için: histogram veya yoğunluk grafiği kullabiliriz.
Veriye tekrar bakalım
# A tibble: 200 × 3
id gender income
<int> <chr> <dbl>
1 1 Male 19376.
2 2 Male 9540.
3 3 Male 10501.
4 4 Male 26262.
5 5 Male 23313.
6 6 Male 15835.
7 7 Male 12728.
8 8 Female 22247.
9 9 Female 41456.
10 10 Male 16254.
# ℹ 190 more rows
income’ın nasıl dağıldığını bir şekilde anlamamız gerekiyor.Histogram, sürekli veriyi aralıklara (bin) gruplar ve her aralığa kaç gözlemin düştüğünü sayar.
Bir “bin” temel olarak bir aralıktır. Örneğin, aşağıdakilerin her biri 1000 genişliğinde bir “bin”dir:
Sürekli veriyi binlere gruplamalı ve her bine kaç gözlemin ait olduğunu saymalıyız.
Bin genişliğini seçmek duruma göre değişir; farklı bin genişlikleri amaca göre deneyebiliriz. Her farklı bin aralığı farklı şekiller ortaya çıkaracaktır.
Gelirin histogramını 1000TL bin genişliğiyle elle çizmeye başlayalım. Binlerimiz gelirin minimum değerinden başlayacak.
Her gözlem için kişinin gelirine bakıp hangi bine ait olduğunu belirleyip saymaya başlıyoruz. Aynı bine düşen daha fazla gözlem gördükçe binin yüksekliğini (sayısı) gösteren y eksenindeki değerler artıyor.
Bunu yapmadan önce x ve y eksenlerimizi çizmemiz gerekiyor.
İlk 10 gözlemi çizelim.
# A tibble: 200 × 3
id gender income
<int> <chr> <dbl>
1 1 Male 19376.
2 2 Male 9540.
3 3 Male 10501.
4 4 Male 26262.
5 5 Male 23313.
6 6 Male 15835.
7 7 Male 12728.
8 8 Female 22247.
9 9 Female 41456.
10 10 Male 16254.
# ℹ 190 more rows
200 gözlemin tamamı için tek tek inceleyip çizmek çok zaman alacak.
Bunun yerine R’dan bunu bizim için yapmasını isteyebiliriz!
earnings adlı veri setimi al,
Bir görselleştirme yapmak istiyorum, veri setimi al ve ggplot uygula.
Elde edeceğimiz şey boş bir kâğıt parçası olacak. Çünkü henüz eksenlerimizi belirtmedik.
Elle çizmeye benzer şekilde önce x ve y eksenini çiziyoruz. Bunu R ile yapmak için aes(x = {değişken adı}) fonksiyonunu kullanıyoruz. Ve bunu mevcut boş sayfamıza + sembolü ile ekliyoruz.
+ her zaman satırların sonunda olacak.
Histogramlar için yalnızca x değişkeninin adını vermemiz yeterli; R her gözlemi kendisi sayacak ve y ekseninde gösterecek!
Şimdi R’a histogram yapmasını söyleme zamanı.
Ne tür grafik istediğimizi söylemek için geom_{grafik türü} kullanıyoruz.
Örneğin, histogram yapmak için geom_histogram() kullanıyoruz.
Yoğunluk grafiği yapmak için geom_density() kullanıyoruz.
Bar grafik yapmak için geom_bar() kullanıyoruz.
Saçılım grafiği yapmak için geom_point() kullanıyoruz.
earnings adlı veri setimi kullan ve sonra ( %>% ),ggplot() kullan, +,x değişkenim income, bunun üzerine (+) ekliyorum,
Önce görselleştirmemize bir tema ekleyerek bu berbat grafiği düzeltmeye başlayalım. theme_{tema adı} ile bir tema kullanabiliriz. theme’in her zaman son satırda olduğundan emin olun.
Varsayılan olarak R, geom_histogram() içinde bir bin genişliği seçiyor; bunu görmesek de geom_histogram(binwidth = bir sayı) şeklindedir. Bin genişliğini istediğimiz değere değiştirmek istiyoruz: binwidth=1000
R ayrıca binleri hangi renkle dolduracağını da otomatik seçiyor. Doldurma (fill) rengini lightskyblue olarak değiştirmek istiyoruz; bunu geom_histogram(binwidth = 1000, fill={"renk adı"}) ile yapıyoruz.
Her argümanı birbirinden ayırmak için , kullandığımıza dikkat edin.
Binlerin kenarlarının rengini değiştirmek için geom_histogram() içinde color={renk adı} argümanını kullanıyoruz. black yapalım.
theme_classic() temasını silin ve theme_ yazmaya başlayın; R size öneriler gösterecek.Grafiği yorumlamaya geçmeden önce x ekseninde gösterilen değer sayılarını artırmak istiyorum. Şu an dağılımı görmek için yeterli olmayan 5 değerimiz var.
x eksenindeki değer sayısını 5’ten 10’a çıkarmak için scale_x_continuous(n.breaks=10) katmanını kullanın.
Bunu temadan önce eklemeyi unutmayın!
y ekseninde de aynı sorun var.
y eksenindeki değer sayısını nasıl artırabiliriz? x ekseni için fonksiyon scale_x_continuous(n.breaks=10) idi. y ekseninde kırılma sayısını 10 olarak ayarlayabilir misiniz?
scale_y_continuous(n.breaks =10)
Şimdi grafiği yorumlama zamanı.
Grafiğimizi anladığımıza göre başkalarının da anlamasını sağlamalıyız; bunun için title (başlık) ve subtitle (alt başlık) ekliyoruz.
labs(title = "{başlığınız}", subtitle = "{alt başlığınız}", x = "{x ekseni etiketi}", y = "{y ekseni etiketi}") katmanını kullanın.
Cümle yazarken tırnak işaretleri arasında yazıyoruz.
Doğru: labs(title = "Aylık kazanç...")
Yanlış: labs(title = Aylık kazanç..)
Doğru: labs(x = "Gelir", y = "Gözlem sayısı")
Yanlış: labs(x = Gelir, y = Gözlem sayısı)
earnings %>%
ggplot() +
aes(x = income) +
geom_histogram(binwidth = 1000, fill = "lightskyblue", color = "black") +
scale_x_continuous(n.breaks = 10) +
scale_y_continuous(n.breaks = 10) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_classic()

density (yoğunluk) grafiğidir.earnings adlı verimizi kullanmak ve şunu yapmak istiyoruz ( %>% )
ggplot() görselleştirmesi uygula
x ekseni değişkeni olarak income ekle
Yoğunluk grafiği ekle: geom_density()

Hemen tercih ettiğiniz bir tema uygulayın.
Bundan önce, güzel bir tema kullanmak için bu temaları içeren yararlı bir paket yükleyelim
ggthemes paketini yüklemek istiyoruz; böylece bu paketin özel temalarını kullanabiliriz.
ggthemes paketinin temalarını kullanabilmek için R’a bu paketi kullanmasını söylememiz gerekiyor
Burada kalmıştık
theme_ yazmaya başlayın; sağ taraftaki öneriler arasında ggthemes’i göreceksiniz; oradan bir tane seçin.
Yoğunluk çizgisinin siyah rengini beğenmedim. geom_density(color = {"tercih ettiğiniz renk"}) içindeki color argümanını kullanarak “azure4” olarak değiştirelim
Çizginin kalınlığı biraz ince görünüyor; geom_density() içindeki linewidth argümanıyla artırabilir miyiz? Varsayılan olarak R geom_density(linewidth = 1) şeklinde otomatik olarak ayarlamış.
geom_density(color = {"tercih ettiğiniz renk"}, linewidth = {tercih ettiğiniz genişlik sayısı})
y ekseni etiketi (label, eksen adı) değişti, çünkü artık sayıları göstermiyoruz. Olasılık yoğunluğunu gösteriyoruz. Yükseklikler artık işçi sayısını değil, olasılık yoğunluğunu temsil ediyor; bunu y etiketinde (eksen adı) yansıtmalıyız.
x ve y değerleri uygun görünüyor. scale_x_continuous() ve scale_y_continuous() kullanmamıza gerek yok.
Başlığımız hâlâ iyi olsa da artık sayıları göstermediğimiz için alt başlık daha iyi olabilir. “Kazançların en yoğun olduğu aralık 15.000–25.000 TL; dağılım sağa çarpık” olarak değiştirelim
earnings %>%
ggplot() +
aes(x = income) +
geom_density(color = "azure4", linewidth = 1.5) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "Kazançların en yoğun olduğu aralık 15.000–25.000 TL; dağılım sağa çarpık",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "Olasılık Yoğunluğu"
) +
theme_economist()
Peki ya işçilerin gelirinin cinsiyete göre değişip değişmediğini görmek isteseydik?
Her gözlem için cinsiyetimiz olduğundan bu bilgiyi de kullanabiliriz.
Bunu yapmanın farklı yolları var.
Bu bizim kodumuz ve grafiğimizdi
earnings %>%
ggplot() +
aes(x = income) +
geom_density(color = "azure4", linewidth = 1.5) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_economist()
earnings %>%
ggplot() +
aes(x = income) +
geom_density(color = "azure4", linewidth = 1.5) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_economist()geom_density(color = "azure4") içindeki rengi geom_density(color = gender) olarak değiştirebilir miyiz?earnings %>%
ggplot() +
aes(x = income) +
geom_density(color = gender, linewidth = 1.5) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_economist()Error: object 'gender' not found hatasını alıyoruz.
Bunun nedeni R’ın bize bir renk adı verdiğimizi sanması; kırmızı, mavi veya yeşil gibi. Ama gender bir renk adı değil. Bir değişken.
Bir şeyi (çizgi rengini, kalınlığını, şeklini) değişkene göre değiştirmek istediğimizde bunu geom_ içinde değil, aes() içinde yapıyoruz.
Bu yüzden geom_density(x = income) yerine aes(x = income) yazıyoruz. Çünkü x tek bir değer değil, bir değişken olmalı..
O halde yapmak istediğimiz şey aes(x = income) satırına gidip , ile ayırarak color = gender argümanını eklemek
earnings %>%
ggplot() +
aes(x = income, color = gender) +
geom_density(linewidth = 1.5) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_economist()
Grafimize cinsiyet bilgisini ekledik.
Artık tek bir dağılımı değil,
İki dağılımı karşılaştırıyoruz.
Artık gösterdiğimiz şey şu “Kazanç dağılımları cinsiyete göre farklılaşıyor mu?”.
Başlık ve alt başlığımız bunu yansıtmalı.
Başlığı “Cinsiyete Göre Aylık Kazanç” olarak değiştirin.
Alt başlığı “Erkek ve kadın işçiler arasında belirgin bir fark yok” olarak değiştirin.
Renk yerine linetype’ı cinsiyete göre değiştirebilirdik.
Yapabilir misiniz?

Histogram kodumuzu hatırlıyor musunuz?
earnings %>%
ggplot() +
aes(x = income) +
geom_histogram(binwidth = 1000, fill = "lightskyblue", color = "black") +
scale_x_continuous(n.breaks = 10) +
scale_y_continuous(n.breaks = 10) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_classic()
Binleri tek bir renkle doldurmak yerine, cinsiyete göre fill yapalım. Bu arada temayı daha güzel biriyle değiştirin.
earnings %>%
ggplot() +
aes(x = income, fill = gender) +
geom_histogram(binwidth = 1000, color = "black",) +
scale_x_continuous(n.breaks = 10) +
scale_y_continuous(n.breaks = 10) +
labs(
title = "Çilek Mobilya, Mamak'taki Üretim İşçilerinin Aylık Kazanç Dağılımı",
subtitle = "İşçilerin çoğu 15.000–25.000 TL arasında kazanıyor; dağılım sağa çarpık, az sayıda yüksek gelirli uç değer var",
x = "Aylık Kazanç (Türk Lirası, TL)",
y = "İşçi Sayısı"
) +
theme_classic()
Bu grafikte pek çok sorun var
Histogramı yalnızca bir değişkenin dağılımını basitçe gösermek için kullanın; gruba göre dağılım karşılaştırması yapmanız gerekiyorsa density grafiği kullanın.
Amacınız “Her gelir aralığına kaç işçi düşüyor?” göstermekse histogram doğru grafiktir (yoğunluk grafiği de kabul edilebilir; yorum biraz farklılaşır).
Amacınız “Gelir dağılımları cinsiyete göre farklılaşıyor mu?” göstermekse yoğunluk grafiği daha uygun olacaktır
Week 3 - English | Hafta 3 - Türkçe