You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Data-Science-For-Beginners/translations/tr/3-Data-Visualization/R/09-visualization-quantities
leestott a8ee6b6162
🌐 Update translations via Co-op Translator
3 weeks ago
..
README.md 🌐 Update translations via Co-op Translator 3 weeks ago
assignment.md 🌐 Update translations via Co-op Translator 3 weeks ago

README.md

Miktarları Görselleştirme

 Sketchnote by (@sketchthedocs)
Miktarları Görselleştirme - Sketchnote by @nitya

Bu derste, miktar kavramı etrafında ilginç görselleştirmeler oluşturmayı öğrenmek için mevcut birçok R paket kütüphanesinden bazılarını nasıl kullanacağınızı keşfedeceksiniz. Minnesota kuşları hakkında temizlenmiş bir veri seti kullanarak, yerel vahşi yaşam hakkında birçok ilginç bilgi edinebilirsiniz.

Ders Öncesi Testi

ggplot2 ile kanat açıklığını gözlemleyin

Hem basit hem de karmaşık grafikler ve çeşitli türlerde çizimler oluşturmak için mükemmel bir kütüphane olan ggplot2 ile tanışın. Genel olarak, bu kütüphaneleri kullanarak veri görselleştirme süreci, hedeflemek istediğiniz veri çerçevesi bölümlerini belirlemeyi, gerekli veri dönüşümlerini yapmayı, x ve y ekseni değerlerini atamayı, hangi tür grafiği göstereceğinize karar vermeyi ve ardından grafiği göstermeyi içerir.

ggplot2, Grafiklerin Grameri'ne dayalı olarak grafikler oluşturmak için deklaratif bir sistemdir. Grafiklerin Grameri, ölçekler ve katmanlar gibi grafik bileşenlerini semantik parçalara ayıran genel bir veri görselleştirme şemasıdır. Başka bir deyişle, az kodla tek değişkenli veya çok değişkenli veriler için grafikler ve çizimler oluşturmanın kolaylığı, ggplot2'yi R'de görselleştirme için en popüler paket haline getirir. Kullanıcı, ggplot2'ye değişkenleri estetiklere nasıl eşleştireceğini, hangi grafiksel ilkel öğeleri kullanacağını söyler ve ggplot2 geri kalanını halleder.

Grafik = Veri + Estetik + Geometri

  • Veri, veri setini ifade eder
  • Estetik, incelenecek değişkenleri belirtir (x ve y değişkenleri)
  • Geometri, grafik türünü ifade eder (çizgi grafiği, çubuk grafiği vb.)

Verilerinize ve grafikle anlatmak istediğiniz hikayeye göre en iyi geometriyi (grafik türü) seçin.

  • Eğilimleri analiz etmek için: çizgi, sütun
  • Değerleri karşılaştırmak için: çubuk, sütun, pasta, dağılım grafiği
  • Parçaların bütüne nasıl bağlandığını göstermek için: pasta
  • Verilerin dağılımını göstermek için: dağılım grafiği, çubuk
  • Değerler arasındaki ilişkileri göstermek için: çizgi, dağılım grafiği, balon

Ayrıca ggplot2 için bu açıklayıcı kılavuzu inceleyebilirsiniz.

Kuş kanat açıklığı değerleri hakkında bir çizgi grafiği oluşturun

R konsolunu açın ve veri setini içe aktarın.

Not: Veri seti bu depo kök dizininde /data klasöründe saklanmıştır.

Veri setini içe aktaralım ve verilerin başını (ilk 5 satırını) gözlemleyelim.

birds <- read.csv("../../data/birds.csv",fileEncoding="UTF-8-BOM")
head(birds)

Verilerin başı, metin ve sayılar karışımından oluşur:

İsim BilimselAd Kategori Takım Aile Cins KorumaDurumu MinUzunluk MaxUzunluk MinVücutKütlesi MaxVücutKütlesi MinKanatAçıklığı MaxKanatAçıklığı
0 Kara karınlı ıslıı ördek Dendrocygna autumnalis Ördekler/Kazlar/Su Kuşları Anseriformes Anatidae Dendrocygna LC 47 56 652 1020 76 94
1 Sarımsı ıslıı ördek Dendrocygna bicolor Ördekler/Kazlar/Su Kuşları Anseriformes Anatidae Dendrocygna LC 45 53 712 1050 85 93
2 Kar kazı Anser caerulescens Ördekler/Kazlar/Su Kuşları Anseriformes Anatidae Anser LC 64 79 2050 4050 135 165
3 Ross'un kazı Anser rossii Ördekler/Kazlar/Su Kuşları Anseriformes Anatidae Anser LC 57.3 64 1066 1567 113 116
4 Büyük beyaz alınlı kaz Anser albifrons Ördekler/Kazlar/Su Kuşları Anseriformes Anatidae Anser LC 64 81 1930 3310 130 165

Şimdi bu ilginç kuşların maksimum kanat açıklığını gösteren temel bir çizgi grafiği çizelim.

install.packages("ggplot2")
library("ggplot2")
ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() 

Burada ggplot2 paketini yüklüyor ve ardından library("ggplot2") komutuyla çalışma alanına dahil ediyorsunuz. ggplot'ta herhangi bir grafik çizmek için ggplot() fonksiyonu kullanılır ve veri seti, x ve y değişkenleri öznitelik olarak belirtilir. Bu durumda, bir çizgi grafiği çizmeyi hedeflediğimiz için geom_line() fonksiyonunu kullanıyoruz.

MaxWingspan-lineplot

Hemen ne fark ediyorsunuz? En az bir aykırı değer var gibi görünüyor - bu oldukça büyük bir kanat açıklığı! 2000+ santimetrelik bir kanat açıklığı 20 metreden fazladır - Minnesota'da Pterodaktiller mi dolaşıyor? Hadi bunu araştıralım.

Bu aykırı değerleri bulmak için Excel'de hızlı bir sıralama yapabilirsiniz, ancak görselleştirme sürecine grafikten çalışarak devam edin.

X eksenine hangi tür kuşların söz konusu olduğunu göstermek için etiketler ekleyin:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_line() +
  theme(axis.text.x = element_text(angle = 45, hjust=1))+
  xlab("Birds") +
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters")

theme içinde açıyı belirtiyor ve xlab() ve ylab() ile x ve y ekseni etiketlerini belirtiyorsunuz. ggtitle() grafiğe bir ad verir.

MaxWingspan-lineplot-improved

Etiketlerin 45 derece döndürülmesine rağmen, okunamayacak kadar çok etiket var. Farklı bir strateji deneyelim: yalnızca aykırı değerleri etiketleyin ve etiketleri grafik içinde ayarlayın. Daha fazla alan yaratmak için bir dağılım grafiği kullanabilirsiniz:

ggplot(data=birds, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) + 
  theme(axis.title.x=element_blank(), axis.text.x=element_blank(), axis.ticks.x=element_blank())
  ylab("Wingspan (CM)") +
  ggtitle("Max Wingspan in Centimeters") + 

Burada ne oluyor? geom_point() fonksiyonunu kullanarak dağılım noktaları çizdiniz. Bununla, MaxWingspan > 500 olan kuşlar için etiketler eklediniz ve ayrıca grafiği sadeleştirmek için x eksenindeki etiketleri gizlediniz.

Ne keşfediyorsunuz?

MaxWingspan-scatterplot

Verilerinizi filtreleyin

Hem Kel Kartal hem de Bozkır Şahini, muhtemelen çok büyük kuşlar olsalar da, maksimum kanat açıklıklarına fazladan bir sıfır eklenmiş gibi görünüyor. 25 metrelik kanat açıklığına sahip bir Kel Kartal ile karşılaşırsanız, lütfen bize bildirin! Bu iki aykırı değeri içermeyen yeni bir veri çerçevesi oluşturalım:

birds_filtered <- subset(birds, MaxWingspan < 500)

ggplot(data=birds_filtered, aes(x=Name, y=MaxWingspan,group=1)) +
  geom_point() +
  ylab("Wingspan (CM)") +
  xlab("Birds") +
  ggtitle("Max Wingspan in Centimeters") + 
  geom_text(aes(label=ifelse(MaxWingspan>500,as.character(Name),'')),hjust=0,vjust=0) +
  theme(axis.text.x=element_blank(), axis.ticks.x=element_blank())

Yeni bir birds_filtered veri çerçevesi oluşturduk ve ardından bir dağılım grafiği çizdik. Aykırı değerleri filtreleyerek, verileriniz artık daha tutarlı ve anlaşılır hale geldi.

MaxWingspan-scatterplot-improved

Kanat açıklığıısından daha temiz bir veri setine sahip olduğumuza göre, bu kuşlar hakkında daha fazla şey keşfedelim.

Çizgi ve dağılım grafikleri, veri değerleri ve dağılımları hakkında bilgi gösterebilirken, bu veri setinde yer alan değerler hakkında düşünmek istiyoruz. Aşağıdaki miktarlarla ilgili soruları yanıtlamak için görselleştirmeler oluşturabilirsiniz:

Kuş kategorileri nelerdir ve sayıları nedir?
Hangi kuşlar nesli tükenmiş, tehlikede, nadir veya yaygındır?
Linnaeus'un terminolojisine göre çeşitli cins ve takımların sayısı nedir?

Çubuk grafiklerini keşfedin

Çubuk grafikleri, verilerin gruplandırılmasını göstermeniz gerektiğinde pratiktir. Bu veri setinde hangi kuş kategorilerinin var olduğunu ve hangisinin sayı bakımından en yaygın olduğunu görelim.
Filtrelenmiş veriler üzerinde bir çubuk grafiği oluşturalım.

install.packages("dplyr")
install.packages("tidyverse")

library(lubridate)
library(scales)
library(dplyr)
library(ggplot2)
library(tidyverse)

birds_filtered %>% group_by(Category) %>%
  summarise(n=n(),
  MinLength = mean(MinLength),
  MaxLength = mean(MaxLength),
  MinBodyMass = mean(MinBodyMass),
  MaxBodyMass = mean(MaxBodyMass),
  MinWingspan=mean(MinWingspan),
  MaxWingspan=mean(MaxWingspan)) %>% 
  gather("key", "value", - c(Category, n)) %>%
  ggplot(aes(x = Category, y = value, group = key, fill = key)) +
  geom_bar(stat = "identity") +
  scale_fill_manual(values = c("#D62728", "#FF7F0E", "#8C564B","#2CA02C", "#1F77B4", "#9467BD")) +                   
  xlab("Category")+ggtitle("Birds of Minnesota")

Aşağıdaki kod parçasında, verileri manipüle etmek ve gruplamak için dplyr ve lubridate paketlerini yüklüyoruz. Daha sonra ggplot2 paketini kullanarak bir çubuk grafik çiziyoruz ve farklı kategoriler için renkleri ve etiketleri belirtiyoruz.

Stacked bar chart

Ancak bu çubuk grafiği okunamaz çünkü çok fazla gruplandırılmamış veri var. Çizmek istediğiniz verileri seçmeniz gerekiyor, bu yüzden kuşların kategorilerine göre uzunluklarına bakalım.

Verilerinizi yalnızca kuşların kategorisini içerecek şekilde filtreleyin.

Birçok kategori olduğu için bu grafiği dikey olarak görüntüleyebilir ve tüm verileri hesaba katmak için yüksekliğini ayarlayabilirsiniz:

birds_count<-dplyr::count(birds_filtered, Category, sort = TRUE)
birds_count$Category <- factor(birds_count$Category, levels = birds_count$Category)
ggplot(birds_count,aes(Category,n))+geom_bar(stat="identity")+coord_flip()

Önce Category sütunundaki benzersiz değerleri sayar ve ardından bunları yeni bir birds_count veri çerçevesine sıralarsınız. Bu sıralanmış veriler aynı seviyede faktörlenir, böylece sıralı bir şekilde çizilir. ggplot2 kullanarak verileri bir çubuk grafikte çizersiniz. coord_flip() yatay çubuklar çizer.

category-length

Bu çubuk grafiği, her kategorideki kuş sayısının iyi bir görünümünü sunar. Bir bakışta, bu bölgedeki en büyük kuş sayısının Ördekler/Kazlar/Su Kuşları kategorisinde olduğunu görüyorsunuz. Minnesota '10.000 gölün ülkesi' olduğu için bu şaşırtıcı değil!

Bu veri setinde başka hangi sayımları deneyebilirsiniz? Sizi şaşırtan bir şey var mı?

Verileri karşılaştırma

Yeni eksenler oluşturarak gruplandırılmış verilerin farklı karşılaştırmalarını deneyebilirsiniz. Bir kuşun kategorisine göre Maksimum Uzunluğunu karşılaştırmayı deneyin:

birds_grouped <- birds_filtered %>%
  group_by(Category) %>%
  summarise(
  MaxLength = max(MaxLength, na.rm = T),
  MinLength = max(MinLength, na.rm = T)
           ) %>%
  arrange(Category)
  
ggplot(birds_grouped,aes(Category,MaxLength))+geom_bar(stat="identity")+coord_flip()

birds_filtered verilerini Category'ye göre gruplar ve ardından bir çubuk grafik çizersiniz.

comparing data

Burada şaşırtıcı bir şey yok: sinek kuşlarının Maksimum Uzunluğu, Pelikanlar veya Kazlarla karşılaştırıldığında en azdır. Verilerin mantıklı olması güzel bir şey!

Çubuk grafiklerin daha ilginç görselleştirmelerini, verileri üst üste bindirerek oluşturabilirsiniz. Bir kuş kategorisinde Minimum ve Maksimum Uzunluğu üst üste bindirelim:

ggplot(data=birds_grouped, aes(x=Category)) +
  geom_bar(aes(y=MaxLength), stat="identity", position ="identity",  fill='blue') +
  geom_bar(aes(y=MinLength), stat="identity", position="identity", fill='orange')+
  coord_flip()

super-imposed values

🚀 Meydan Okuma

Bu kuş veri seti, belirli bir ekosistemdeki farklı kuş türleri hakkında zengin bilgiler sunar. İnternette araştırma yapın ve başka kuş odaklı veri setleri bulabilir misiniz bir bakın. Bu kuşlar etrafında grafikler ve çizimler oluşturarak farkında olmadığınız gerçekleri keşfetmeye çalışın.

Ders Sonrası Testi

Gözden Geçirme ve Kendi Kendine Çalışma

Bu ilk ders, miktarları görselleştirmek için ggplot2 kullanımı hakkında size bazı bilgiler verdi. Veri görselleştirme için başka yollarla çalışmak hakkında araştırma yapın. Lattice ve Plotly gibi diğer paketleri kullanarak görselleştirebileceğiniz veri setlerini araştırın ve keşfedin.

Ödev

Çizgiler, Dağılımlar ve Çubuklar


Feragatname:
Bu belge, Co-op Translator adlı bir yapay zeka çeviri hizmeti kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlıklar içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel bir insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.