#Adım 1: Veri seçimi
#👶Bu ödevde "babynames" adlı hazır veri seti kullanılmıştır.
#Bu veri seti, 1880-2022 yılları arasında ABD'de doğan bebeklerin isimlerini, cinsiyetlerini, doğum yıllarını,
#ve o isme sahip bebeklerin sayısını içermektedir.
install.packages("babynames", repos = "https://cloud.r-project.org/")
## Installing package into 'C:/Users/User/AppData/Local/R/win-library/4.5'
## (as 'lib' is unspecified)
## package 'babynames' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\User\AppData\Local\Temp\RtmpUdqnfm\downloaded_packages
# 👶Paketleri yükleme
data("babynames")
## Warning in data("babynames"): data set 'babynames' not found
library(babynames)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(ggplot2)
#👶 Veri setinin boyutları
dim(babynames)
## [1] 1924665 5
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…
# Adım 1: Veri Hazırlığı
# 👶 Veri setini gözden geçirelim
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
# 👶 Sadece birkaç yıl ve popüler isimlerden küçük bir örnek oluşturalım babynames_v1 <- babynames %>%
babynames_v1 <- babynames %>%
filter(year >= 2000 & year <= 2020,
name %in% c("Emma", "Olivia", "Noah", "Liam", "Ava", "Ethan"))
head(babynames_v1)
## # A tibble: 6 × 5
## year sex name n prop
## <dbl> <chr> <chr> <int> <dbl>
## 1 2000 F Olivia 12852 0.00644
## 2 2000 F Emma 12548 0.00629
## 3 2000 F Ava 1796 0.000900
## 4 2000 F Noah 64 0.0000321
## 5 2000 F Ethan 21 0.0000105
## 6 2000 F Liam 12 0.00000602
#Eksik veriler
colSums(is.na(babynames_v1))
## year sex name n prop
## 0 0 0 0 0
# Adım 2:Beş farklı Grafik oluşturma
# 1 Dağılım Grafiği - Yıl ve isim kullanım sayısı
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
geom_point(size = 2, alpha = 0.7) +
labs(title = "Yıllara Gore Populer İsimlerin Dagılımı",
x = "Yıl",
y = "İsim Sayısı",
color = "İsim") +
theme_minimal()
#Bu dağılım grafiği, yıllara göre isimlerin kullanım yoğunluğunu göstermektedir.
#Noktalar, bazı isimlerin belirli yıllarda çok daha popüler olduğunu ortaya koymaktadır.Örneğin Noah isminin #popülerliği gitgide artarken,Ethan ismi yıllara göre azalan bir trendedir.
#Grafik, isimlerin zaman içindeki trendlerini ve değişkenliğini hızlı bir şekilde görmemizi sağlamaktadır.
# 2 Sütun Grafiği - Belirli yılda en popüler isimler
top_names_2015 <- babynames %>%
filter(year == 2015, sex == "F") %>%
arrange(desc(n)) %>%
head(6)
ggplot(top_names_2015, aes(x = reorder(name, n), y = n, fill = name)) +
geom_col(show.legend = FALSE) +
labs(title = "2015 En Populer Kız isimleri",
x = "İsim",
y = "Kullanım Sayısı") +
theme_light()
# Bu sütun grafiği, 2015 yılında en popüler kız isimlerini göstermektedir.
#Olivia ve Emma isimleri diğerlerine göre çok daha fazla tercih edilmiştir.En az tercih edilen isim Mia olmuştur.
#Grafik, yıllık popülerlik farklarını hızlı ve görsel olarak karşılaştırmayı kolaylaştırmaktadır.
`
# 3 Kutu Grafiği Cinsiyete göre isim sayısı dağılımı
ggplot(babynames_v1, aes(x = sex, y = n, fill = sex)) +
geom_boxplot() +
labs(title = "Cinsiyete-İsim Sayısı",
x = "Cinsiyet",
y = "Kullanım Sıklığı",
fill = "Cinsiyet") +
theme_light()
#Bu kutu grafiği, cinsiyete göre isimlerin kullanım sıklığını karşılaştırmaktadır.
#Erkek isimleri daha geniş bir dağılıma sahipken, kadın isimleri daha dar bir aralıkta yoğunlaşmıştır.
#Grafik, cinsiyete göre popülerlik farklarını ve isimlerin dağılım biçimini anlamamıza yardımcı olmaktadır.Bu grafik, #cinsiyete göre dağılımı iyi özetliyor, ancak uç değerleri daha belirgin göstermek için jitter eklenebilir.
# 4 Histogram - İsimlerin popülerlik dağılımı
ggplot(babynames_v1, aes(x = n, fill = sex)) +
geom_histogram(bins = 30, alpha = 0.7, position = "identity") +
labs(title = "İsim ve Populerlik",
x = "İsim Kullanım Sıklığı",
y = "Frekans",
fill = "Cinsiyet") +
theme_minimal()
# 🗒️ Yorum:
# Bu histogram, isimlerin çoğunun nadiren tercih edildiğini ancak birkaç ismin çok popüler olduğunu gösteriyor.
#Kadın ve erkek isimlerinin dağılımı benzer olsa da bazı erkek isimleri daha sık kullanılmıştır.
#Görselleştirme, popüler isimlerin baskınlığını ve nadir isimlerin çeşitliliğini anlamamıza yardımcı olmaktadır.
``
# 5️ Çizgi Grafiği - Zaman içindeki değişim
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
geom_line(linewidth = 1.2) +
labs(title = "Yıllara Gore Populer İsimlerin Kullanım Sıklıgı",
x = "Yıl",
y = "İsim Sayısı",
color = "İsim") +
theme_minimal()
#Bu çizgi grafiği, yıllar içinde seçilen popüler isimlerin kullanım değişimini göstermektedir.
#Emma ve Olivia gibi isimlerin 2010’dan sonra artış gösterdiği görülmektedir.
#Grafik, isimlerin zaman içindeki trendlerini ve popülerlik dalgalanmalarını anlamamıza yardımcı olmaktadır.
#Bu grafik trendleri net gösteriyor ama çok sayıda isim olduğunda çizgiler üst üste biniyor belki facet_wrap ile her #ismi ayrı göstermek daha okunaklı olur.Ben fazladan 6.grafik ekledim facet_wrap kullanarak,onun gösteriminin daha #açıklayıcı olduğunu gördüm.
``
# 6 Facet_wrap ile alt gruplar ve açıklama çizgisi
ggplot(babynames_v1, aes(x = year, y = n, color = name)) +
geom_line(linewidth = 1) +
facet_wrap(~sex) +
geom_vline(xintercept = 2010, linetype = "dashed", color = "red") +
geom_text(aes(x = 2011, y = 25000, label = "2010 sonrası trend"), color = "red", hjust = 0) +
labs(title = "Cinsiyete Gore Populer isimlerin Degisimi",
x = "Yıl",
y = "Kullanım Sayısı",
color = "İsim") +
theme_minimal()
## Warning in geom_text(aes(x = 2011, y = 25000, label = "2010 sonrası trend"), : All aesthetics have length 1, but the data has 212 rows.
## ℹ Please consider using `annotate()` or provide this layer with data containing
## a single row.
`
#Öğrenme Günlüğüm
#Bu haftaki derste, R’da veri görselleştirmeyi ve farklı grafik türlerini kullanmayı öğrendim. Çizgi grafikleri ile #zaman içindeki değişimleri, kutu grafikleri ile cinsiyete göre dağılımları, histogramlar ile isimlerin popülerlik #dağılımını görselleştirdim. Ayrıca facet_wrap ve geom_vline gibi ekleme öğeleri kullanarak veriyi daha anlamlı ve #açıklayıcı hâle getirmeyi öğrendim. Bu çalışmalar sayesinde veriyi sadece sayısal olarak değil, görsel olarak da #yorumlamanın ve trendleri fark etmenin önemini kavradım.