suppressPackageStartupMessages({
  library(babynames)
  library(dplyr)
  library(openintro)
})

🚶‍♀️ 1. Ön Hazırlık

💥Veri Görselleştirme Notları

🔸ggplot2 Paketi:

Çizilen tüm grafiklerin başlığı, x ve y eksenleri etiketleri, rengi vb. düzenlemeler yapılarak özelleştirilebilir.

Temel fonksiyonlar:

qplot(): Hızlı grafik çizimi anlamına gelmektedir.

ggplot(): En sık kullanılan fonksiyondur.

Kullanımı:

qplot(x, y, data, geom)

ggplot(x, y, data, geom)

🔸En Sık Kullanılan Grafik Türleri

1.Yoğunluk Grafiği:geom_density()

2.Histogram Grafiği: geom_histogram()

3.Bar Grafiği: geom_bar()

4.Çizgi Grafiği: geom_line()

5.Saçılım Grafiği: geom_point()

6.Kutu Grafiği: geom_boxplot ()

🔸Yüzey Eklenmesi

Temel fonksiyonlar:

1.facet_grid()

2.facet_wrap()

Kullanımı:

facet_wrap(~değişken, ncol=n) #sütun sayısı

facet_wrap(~değişken, nrow=n) #satır sayısı

facet_grid(.~CINSIYET) #Buradaki nokta “boş”anlamına gelir.Yani “o eksende gruplama yok” demektir.

🔸Aesthetics

Çizilmiş verinin görselliğini güçlendirmek için kullanılır.

1.color parametresi:

geom_point(color = “purple”) # saçılım grafiğinin rengini seçer.

2.size ve shape parametreleri:

geom_point(color = “blue”,size=5, shape=“a”) # saçılım grafiğinin rengini ve şeklini belirler.

geom_point(position = “jitter”) # üst üste gelen noktaları kaydırır.

🔸Katmanlar

Her komut bir öncekine artı sembolü (+) ile eklenerek çok katmanlı bir çizim nesnesi oluşturulur.

📎1.alpha:

geom_point(alpha = 0.3) #şeffaflık düzeyini ayarlamak için kullanılır.

📎2.text:

geom_text(aes(label = CINSIYET)) #metinler veri sembolü olarak eklenebilir.

📎3.scale:

3.1.scale_x_continuous() ve scale_y_continuous(): Bu fonksiyonlar, sürekli değişkenler için x ve y eksenlerinin ölçeklerini özelleştirmek için kullanılır.

Örnek: scale_x_continuous(limits = c(0, 10), breaks = seq(0, 10, by = 2))

3.2.scale_x_discrete() ve scale_y_discrete(): Eksen etiketlerinin ve adlarının görünümünü özelleştirmek için kullanılır.

Örnek: scale_x_discrete(labels = c(“A”, “B”, “C”))

3.3. scale_color_() ve scale_fill_(): Renk ve dolgu gibi farklı estetikler için kullanılır.

Örnek: scale_color_manual(values = c(“red”, “blue”, “green”))

3.4. scale_size() ve scale_shape(): Br çizimdeki ögelerin boyutunu ve şeklini özelleştirmek için kullanılır.

📎4.Limitler: Sınırlar belirlenir. x ve y eksininin min, max değerleri belirlenir.

Örnek: limits = c(100,900)

📎5.labs:

Eksen isimlendirmeleri yapılır.

Örnek: labs(x = “Puanları”, y = “Puanları”, color = “Grup”)

📊 2. Kendi Grafiklerim

library(babynames)
library(dplyr)
library(openintro)
library(ggplot2)

2.1.Veri Seti İnceleme

head(babynames)
## # A tibble: 6 × 5
##    year sex   name          n   prop
##   <dbl> <chr> <chr>     <int>  <dbl>
## 1  1880 F     Mary       7065 0.0724
## 2  1880 F     Anna       2604 0.0267
## 3  1880 F     Emma       2003 0.0205
## 4  1880 F     Elizabeth  1939 0.0199
## 5  1880 F     Minnie     1746 0.0179
## 6  1880 F     Margaret   1578 0.0162
glimpse (babynames)
## Rows: 1,924,665
## Columns: 5
## $ year <dbl> 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880, 1880,…
## $ sex  <chr> "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", "F", …
## $ name <chr> "Mary", "Anna", "Emma", "Elizabeth", "Minnie", "Margaret", "Ida",…
## $ n    <int> 7065, 2604, 2003, 1939, 1746, 1578, 1472, 1414, 1320, 1288, 1258,…
## $ prop <dbl> 0.07238359, 0.02667896, 0.02052149, 0.01986579, 0.01788843, 0.016…

2.1.1.Veri Setindeki Sütun İsimlerini Türkçeleştirme

bebek_isimleri <- babynames %>% 
  rename(yil = year,
         cinsiyet = sex,
         isim = name,
         adet = n,
         oran = prop) %>% 
  mutate (if_else (cinsiyet == "F", "K", "E"))
bebek_isimleri <- bebek_isimleri %>%
  mutate(cinsiyet = if_else(cinsiyet == "F", "K", "E"))

2.1.2.Tüm Yılların En Popüler İsimleri

bebek_isimleri %>% 
  group_by(isim, cinsiyet, yil) %>% 
  summarise(toplam = sum(adet)) %>% #o isim tüm yıllarda toplam kaç kere kullanılmış
  arrange(desc(toplam)) %>% #toplama göre büyükten küçüğe sıralar
  head(10) #ilk 10u verir
## `summarise()` has grouped output by 'isim', 'cinsiyet'. You can override using
## the `.groups` argument.
## # A tibble: 10 × 4
## # Groups:   isim, cinsiyet [4]
##    isim    cinsiyet   yil toplam
##    <chr>   <chr>    <dbl>  <int>
##  1 Linda   K         1947  99686
##  2 Linda   K         1948  96209
##  3 James   E         1947  94756
##  4 Michael E         1957  92695
##  5 Robert  E         1947  91642
##  6 Linda   K         1949  91016
##  7 Michael E         1956  90620
##  8 Michael E         1958  90520
##  9 James   E         1948  88588
## 10 Michael E         1954  88514
en_populer <- bebek_isimleri %>%
  count(cinsiyet, isim, wt = adet, name = "toplam") %>%
  group_by(cinsiyet) %>%
  slice_max(order_by = toplam, n = 10)

2.2. En Popüler Kız Erkek İsimleri / Sütun Grafiği

ggplot(en_populer, aes(x = reorder(isim, toplam),
                       y = toplam,
                       fill = cinsiyet)) +
  geom_col() +
  coord_flip() +
  scale_y_continuous(breaks = NULL) +
  labs(title = "En Populer 10 İsim",
       x = "İsim", y = "Toplam", fill = "Cinsiyet") +
  theme_minimal()

Grafikte de görüldüğü gibi kız ve erkek isimleri arasından en çok tercih edilen erkek ismi “James” iken, en çok tercih edilen kız ismi ise “Mary” olarak belirlenmiştir.

2.3. En Sık Kullanılan İsimlerin Yıllara Göre Değişimi/Dağılım Grafiği

Kız İsmi 👇

bebek_isimleri %>%
  filter(isim == "Mary", cinsiyet == "K") %>%        # sadece Mary ismini seçiyoruz
  ggplot(aes(x = yil, y = adet)) + 
  geom_point(color = "deeppink", size = 2) +  
  labs(title = "Yıllara Gore 'Mary' İsminin Kullanımı",
       x = "Yil",
       y = "Bebek Sayısı") +
  theme_minimal()

Grafikte görüldüğü gibi 1920 ve 1950’lerde Mary ismi en sık kullanılır isim iken, 1960’lardan sonra giderek düşmüş ve 2017 yılında neredeyse hiç kullanılmamıştır.

Erkek İsmi👇

bebek_isimleri %>% 
  filter(isim =="James", cinsiyet == "E") %>% 
  ggplot(aes(x=yil, y=adet)) +
  geom_point(color="darkblue")+
  labs(title="Yıllara Gore 'James' İsminin Kullanımı",
       x="Yıl",
       y="Bebek Sayısı") +
  theme_minimal()

Grafikte görüldüğü gibi 1950’lerde James ismi en sık kullanılır isim iken, 1960’lardan sonra giderek düşmüş ve 2000’li yıllarda oldukça az kullanılır hale gelmiştir.

2.4. Favori Kız ve Erkek İsimlerim / Kutu-Bıyık Grafiği

fav_isimler <- bebek_isimleri %>% 
  filter(isim %in% c("Elizabeth", "Emma", "Margaret", "Linda", 
                     "Mary", "Thomas", "Michael", "William", "Robert", "Charles")) #%in% veri seti içinden seçmeye yarar
ggplot(fav_isimler, aes(x = isim, y = yil)) +
  geom_boxplot(outlier.alpha = 0.3) +
  labs(title = "Secilen İsimlerin Yıllık Dağılımı",
       x = "İsim", y = "Yıl")

#kutuların içini renklendirmeyi başaramadım :(

Bu kutu-bıyık grafiği, seçilen klasik isimlerin yıllar içindeki kullanım dağılımını göstermektedir. Grafikte görüldüğü gibi çoğu isim 1880’lerden 2000’lere kadar kullanılmaktadır. Özellikle erkek isimleri olan Charles, Robert, William, Thomas ve Michael uzun kutulara sahiptir; bu da bu isimlerin uzun yıllar boyunca popülerliğini koruduğunu göstermektedir.Kadın isimlerinden Linda ve Margaret ise daha kısa kutulara sahiptir; bu, onların belirli dönemlerde popülerlik kazanıp sonrasında kullanımının azaldığını ifade eder. Mary ve Elizabeth isimleri ise geniş kutularıyla dikkat çekmektedir; bu durum, onların farklı zamanlarda das popülerliğini sürdürdüğünü göstermektedir.

2.5. Favori Kız ve Erkek İsimlerimin Yıllara Göre Kullanım Değişimi / Çizgi Grafiği

ggplot(fav_isimler, aes(x = yil, y = adet, color = cinsiyet)) +
  geom_line(linewidth = 1) +
  facet_wrap(~ isim, scales = "free_y") +
  labs(title = "Seçilen İsimlerin Cinsiyete Gore Yıllık Değişimi",
       x = "Yıl", y = "Adet")

Grafikte yatay eksen yılları, dikey eksen ise her ismin o yıl kaç bebekte görüldüğünü temsil etmektedir. Kırmızı çizgiler erkek isimlerini, mavi çizgiler ise kız isimlerini göstermektedir. Grafik incelendiğinde, erkek isimlerinin (özellikle Michael, Robert, Thomas ve William) uzun yıllar boyunca istikrarlı bir biçimde kullanıldığı, 1950–1980 yılları arasında zirveye ulaştığı görülmektedir. Buna karşılık, kız isimleri (özellikle Linda, Mary ve Margaret) daha kısa dönemlerde popülerlik artışları göstermiştir; örneğin Linda ismi 1940–1960 arasında büyük bir yükseliş yaşamış, ardından hızla düşmüştür.Veri setine göre son yıllarda en sık kullanılan kız ismi Emma, erkek ismi ise William olarak belirlenmiştir.

2.6. Veri Setindeki Son 5 Yılda En Sık Kullanılan Kız ve Erkek İsimleri / Yoğunluk Grafiği

max(bebek_isimleri$yil) #veri setindeki son yılın hangi yıl olduğunu merak ettiğim için yazdırdım
## [1] 2017
bebek_isimleri %>%
  group_by(yil, cinsiyet) %>% #veriyi yıla ve cinsiyete göre grupladım
  summarise(toplam = sum(adet)) %>%
  ggplot(aes(x = yil, y = toplam, fill = cinsiyet)) +
  geom_density(stat = "identity", alpha = 0.5, bw = 1) + #stat identity benim esapladığımı kullan demek
  labs(
    title = "Yıllara Gore Kız ve Erkek Doğumlarının Yoğunluk Dağılımı",
    x = "Yıl",
    y = "Doğum Yoğunluğu"
  ) +
  theme_minimal()
## `summarise()` has grouped output by 'yil'. You can override using the `.groups`
## argument.
## Warning in geom_density(stat = "identity", alpha = 0.5, bw = 1): Ignoring
## unknown parameters: `bw`

Grafik, 1880’den 2017’ye kadar doğan kız ve erkek bebeklerin yoğunluk dağılımını göstermektedir. Görüldüğü üzere, doğum sayıları 1900’lerin başında düşükken 1950’lerden itibaren belirgin bir artış göstermiştir. Bu artış özellikle 1960–1980 döneminde en yüksek seviyelere ulaşmıştır. Kız ve erkek bebeklerin doğum eğrileri birbirine oldukça yakındır, bu da yıllar boyunca cinsiyet oranlarının benzer olduğunu göstermektedir.