Grafikler, veri analizi sürecinin üçüncü kısmıdır. İlk bölüm veri çıkarma ile ilgili , ikinci bölüm verilerin temizlenmesi ve işlenmesi ile ilgilidir . Sonunda, veri bilimcisinin sonuçlarını grafiksel olarak iletmesi gerekebilir .
Veri bilimcinin işi aşağıdaki resimde incelenebilir
- Bir veri bilimcinin ilk görevi, bir araştırma sorusu tanımlamaktır. Bu araştırma sorusu projenin amaçlarına ve hedeflerine bağlıdır.
- Bundan sonra en önemli görevlerden biri özellik mühendisliğidir. Veri bilimcinin verileri toplaması, işlemesi ve temizlemesi gerekir
- Bu adım tamamlandığında, veri setini keşfetmeye başlayabilir. Bazen, yeni bir keşif nedeniyle orijinal hipotezi düzeltmek ve değiştirmek gerekir.
- Ne zaman açıklayıcı analiz elde edilir, veri bilim adamı için okuyucunun kapasitesi dikkate sahiptir yatan modelleri ve kavramları .
- Sonuçları, tüm paydaşların anlayabileceği bir formatta sunulmalıdır. Sonuçları iletmenin en iyi yöntemlerinden biri bir grafiktir .
- Grafikler, karmaşık analizi basitleştirmek için inanılmaz bir araçtır.
Bu eğitimde öğreneceksiniz-
- ggplot2 paketi
- Dağılım grafiği
- Ekseni değiştir
- Uygun değerlere sahip dağılım grafiği
- Grafiğe bilgi ekleyin
- X eksenini ve y eksenini yeniden adlandırın
- Ölçekleri kontrol edin
- Tema
- Grafikleri Kaydet
ggplot2 paketi
Eğitimin bu bölümü R ile nasıl grafik / çizelge yapılacağına odaklanmaktadır
Bu eğitimde ggplot2 paketini kullanacaksınız. Bu paket, Wilkinson, 2005 tarafından yazılan Grafiklerin Grameri kitabının tutarlı temelleri üzerine inşa edilmiştir. Ggplot2 çok esnektir, birçok temayı ve yüksek düzeyde soyutlamayla arsa özelliklerini içerir. Ggplot2 ile 3 boyutlu grafikleri çizemez ve etkileşimli grafikler oluşturamazsınız.
Ggplot2'de bir grafik aşağıdaki bağımsız değişkenlerden oluşur:
- veri
- estetik haritalama
- geometrik nesne
- istatistiksel dönüşümler
- ölçekler
- koordinat sistemi
- pozisyon ayarlamaları
- yontma
Öğreticide bu argümanları nasıl kontrol edeceğinizi öğreneceksiniz.
Ggplot2'nin temel sözdizimi şöyledir:
ggplot(data, mapping=aes()) +geometric objectarguments:data: Dataset used to plot the graphmapping: Control the x and y-axisgeometric object: The type of plot you want to show. The most common object are:- Point: `geom_point()`- Bar: `geom_bar()`- Line: `geom_line()`- Histogram: `geom_histogram()`
Dağılım grafiği
Ggplot'un mtcars veri kümesiyle nasıl çalıştığını görelim. Mpg değişkeninin ve drat değişkeninin dağılım grafiğini çizerek başlayın.
Temel dağılım grafiği
library(ggplot2)ggplot(mtcars, aes(x = drat, y = mpg)) +geom_point()
Kod Açıklama
- Önce veri kümesi mtcars'ı ggplot'a geçirirsiniz.
- Aes () bağımsız değişkeninin içine, x eksenini ve y eksenini eklersiniz.
- + İşareti, R'nin kodu okumaya devam etmesini istediğiniz anlamına gelir. Kodu kırarak daha okunaklı hale getirir.
- Geometrik nesne için geom_point () kullanın.
Çıktı:
Gruplarla dağılım grafiği
Bazen, değerleri bir grup veri (yani faktör seviyesi verileri) ile ayırt etmek ilginç olabilir.
ggplot(mtcars, aes(x = mpg, y = drat)) +geom_point(aes(color = factor(gear)))
Kod Açıklama
- Geom_point () içindeki aes () grubun rengini kontrol eder. Grup bir faktör değişkeni olmalıdır. Böylece, değişken dişliyi bir faktöre dönüştürürsünüz.
- Toplamda, noktaların rengini değiştiren aes koduna (renk = faktör (dişli)) sahipsiniz.
Çıktı:
Ekseni değiştir
Verileri yeniden ölçeklendirmek, veri bilimcisi işinin büyük bir parçasıdır. Nadir durumlarda, veriler güzel bir çan şeklinde gelir. Verilerinizi aykırı değerlere karşı daha az hassas hale getirmenin bir çözümü, onları yeniden ölçeklendirmektir.
ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear)))
Kod Açıklama
- Log () içindeki x ve y değişkenlerini doğrudan aes () eşlemesinin içine dönüştürürsünüz.
Standardizasyon veya normalleştirme gibi başka herhangi bir dönüşümün uygulanabileceğini unutmayın.
Çıktı:
Uygun değerlere sahip dağılım grafiği
Grafiğe başka bir bilgi düzeyi ekleyebilirsiniz. Doğrusal bir regresyonun uygun değerini çizebilirsiniz.
my_graph <- ggplot(mtcars, aes(x = log(mpg), y = log(drat))) +geom_point(aes(color = factor(gear))) +stat_smooth(method = "lm",col = "#C42126",se = FALSE,size = 1)my_graph
Kod Açıklama
- grafik: Grafiğinizi değişken grafiğe kaydedersiniz. Daha fazla kullanım veya çok karmaşık kod satırlarından kaçınmak için faydalıdır
- Stat_smooth () argümanı yumuşatma yöntemini kontrol eder
- method = "lm": Doğrusal regresyon
- col = "# C42126": Çizginin kırmızı renginin kodu
- se = YANLIŞ: Standart hatayı görüntüleme
- size = 1: satırın boyutu 1
Çıktı:
Diğer yumuşatma yöntemlerinin de mevcut olduğunu unutmayın.
- glm
- gam
- lös: varsayılan değer
- jant
Grafiğe bilgi ekleyin
Şimdiye kadar grafiklere bilgi eklemedik. Grafikler bilgilendirici olmalıdır. Okuyucu, ek belgelere başvurmadan sadece grafiğe bakarak veri analizinin arkasındaki hikayeyi görmelidir. Bu nedenle, grafiklerin iyi etiketlere ihtiyacı vardır. Labs () işlevi ile etiket ekleyebilirsiniz.
Lab () için temel sözdizimi şöyledir:
lab(title = "Hello Guru99")argument:- title: Control the title. It is possible to change or add title with:- subtitle: Add subtitle below title- caption: Add caption below the graph- x: rename x-axis- y: rename y-axisExample:lab(title = "Hello Guru99", subtitle = "My first plot")
Başlık ekle
Eklenmesi gereken zorunlu bilgilerden biri, açıkça bir başlıktır.
my_graph +labs(title = "Plot Mile per hours and drat, in log")
Kod Açıklama
- my_graph: Kaydettiğiniz grafiği kullanırsınız. Grafiğe her yeni bilgi eklediğinizde tüm kodların yeniden yazılmasını önler.
- Başlığı laboratuarın içine () sarın.
- Çizginin kırmızı rengi için kod
- se = YANLIŞ: Standart hatayı görüntüleme
- size = 1: satırın boyutu 1
Çıktı:
Dinamik ada sahip bir başlık ekleyin
Dinamik bir başlık, başlığa daha kesin bilgiler eklemeye yardımcı olur.
Statik metin ve dinamik metin yazdırmak için paste () işlevini kullanabilirsiniz. Paste () öğesinin temel sözdizimi şöyledir:
paste("This is a text", A)arguments- " ": Text inside the quotation marks are the static text- A: Display the variable stored in A- Note you can add as much static text and variable as you want. You need to separate them with a comma
Misal:
A <-2010paste("The first year is", A)
Çıktı:
## [1] "The first year is 2010"
B <-2018paste("The first year is", A, "and the last year is", B)
Çıktı:
## [1] "The first year is 2010 and the last year is 2018"
Grafiğimize dinamik bir isim, yani mpg ortalaması ekleyebilirsiniz.
mean_mpg <- mean(mtcars$mpg)my_graph + labs(title = paste("Plot Mile per hours and drat, in log. Average mpg is", mean_mpg))
Kod Açıklama
- Mean_mpg değişkeninde depolanan ortalama (mtcars $ mpg) ile ortalama mpg oluşturursunuz
- Ortalama mpg değerini döndüren dinamik bir başlık oluşturmak için paste () ile mean_mpg'yi kullanırsınız.
Çıktı:
Altyazı ekle
İki ek ayrıntı, grafiğinizi daha açık hale getirebilir. Altyazı ve altyazıdan bahsediyorsun. Altyazı, başlığın hemen altına gider. Başlık, hesaplamayı kimin yaptığı ve verilerin kaynağı hakkında bilgi verebilir.
my_graph +labs(title ="Relation between Mile per hours and drat",subtitle ="Relationship break down by gear class",caption = "Authors own computation")
Kod Açıklama
- Laboratuvarın içine () şunları eklediniz:
- title = "Saat başına Mil ile drat arasındaki ilişki": Başlık ekleyin
- subtitle = "Dişli sınıfına göre ilişkinin bozulması": Altyazı ekle
- caption = "Yazarlar kendi hesaplamalarına sahiptir: Başlık ekleyin
- Her yeni bilgiyi virgülle ayırırsınız,
- Kod satırlarını kırdığınızı unutmayın. Zorunlu değildir ve yalnızca kodu daha kolay okumaya yardımcı olur
Çıktı:
X eksenini ve y eksenini yeniden adlandırın
Veri kümesindeki değişkenlerin kendisi her zaman açık olmayabilir veya kural gereği birden çok kelime (yani GDP_CAP) olduğunda _ karakterini kullanabilir. Grafiğinizde böyle bir adın görünmesini istemezsiniz. İsmi değiştirmek veya üniteler gibi daha fazla ayrıntı eklemek önemlidir.
my_graph +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Kod Açıklama
- Laboratuvarın içine () şunları eklediniz:
- x = "Drat tanımı": X ekseninin adını değiştirin
- y = "Mil bölü saat": y ekseninin adını değiştirin
Çıktı:
Ölçekleri kontrol edin
Eksenin ölçeğini kontrol edebilirsiniz.
Seq () işlevi, bir sayı dizisi oluşturmanız gerektiğinde kullanışlıdır. Temel sözdizimi şöyledir:
seq(begin, last, by = x)arguments:- begin: First number of the sequence- last: Last number of the sequence- by= x: The step. For instance, if x is 2, the code adds 2 to `begin-1` until it reaches `last`
Örneğin, 3 adımıyla 0 ila 12 arasında bir aralık oluşturmak istiyorsanız, dört numaranız olacak, 0 4 8 12
seq(0, 12,4)
Çıktı:
## [1] 0 4 8 12
X ekseni ve y ekseni ölçeğini aşağıdaki gibi kontrol edebilirsiniz
my_graph +scale_x_continuous(breaks = seq(1, 3.6, by = 0.2)) +scale_y_continuous(breaks = seq(1, 1.6, by = 0.1)) +labs(x = "Drat definition",y = "Mile per hours",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Kod Açıklama
- Scale_y_continuous () işlevi y eksenini kontrol eder
- Scale_x_continuous () işlevi x eksenini kontrol eder .
- Parametre kesmeleri eksenin bölünmesini kontrol eder. Numara dizisini manuel olarak ekleyebilir veya seq () işlevini kullanabilirsiniz:
- seq (1, 3.6, by = 0.2): 3'lük bir adımla 2,4'ten 3,4'e kadar altı sayı oluşturun
- seq (1, 1.6, by = 0.1): 1 adımda 1'den 1.6'ya kadar yedi sayı oluşturun
Çıktı:
Tema
Son olarak, R, arsa farklı temalarla özelleştirmemize izin verir. Kütüphane ggplot2 sekiz tema içerir:
- theme_bw ()
- theme_light ()
- theme_classis ()
- theme_linedraw ()
- theme_dark ()
- theme_minimal ()
- theme_gray ()
- theme_void ()
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Çıktı:
Grafikleri Kaydet
Tüm bu adımlardan sonra, grafiğinizi kaydetme ve paylaşma zamanı. Grafiği çizdikten hemen sonra ggsave ('DOSYANIN ADI) ekleyin ve sabit diskte saklanacaktır.
Grafik, çalışma dizinine kaydedilir. Çalışma dizinini kontrol etmek için şu kodu çalıştırabilirsiniz:
directory <-getwd()directory
Fantastik grafiğinizi çizelim, kaydedelim ve konumu kontrol edelim
my_graph +theme_dark() +labs(x = "Drat definition, in log",y = "Mile per hours, in log",color = "Gear",title = "Relation between Mile per hours and drat",subtitle = "Relationship break down by gear class",caption = "Authors own computation")
Çıktı:
ggsave("my_fantastic_plot.png.webp")
Çıktı:
## Saving 5 x 4 in image
Not : Yalnızca pedagojik amaç için, dizin klasörünü sizin için açmak üzere open_folder () adında bir işlev oluşturduk. Aşağıdaki kodu çalıştırmanız ve resmin nerede saklandığını görmeniz yeterlidir. My_fantastic_plot.png.webp adında bir dosya görmelisiniz.
# Run this code to create thefunctionopen_folder <- function(dir) {if (.Platform['OS.type'] == "windows") {shell.exec(dir)} else {system(paste(Sys.getenv("R_BROWSER"), dir))}}# Call thefunction to open the folder open_folder(directory)
Özet
Aşağıdaki tabloda dağılım grafiği oluşturmak için argümanları özetleyebilirsiniz:
Amaç |
Kod |
---|---|
Temel dağılım grafiği |
ggplot(df, aes(x = x1, y = y)) + geom_point() |
Renk grubu ile dağılım grafiği |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) + stat_smooth(method = "lm") |
Uygun değerler ekleyin |
ggplot(df, aes(x = x1, y = y)) + geom_point(aes(color = factor(x1)) |
Başlık ekle |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(title = paste("Hello Guru99")) |
Altyazı ekle |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(subtitle = paste("Hello Guru99")) |
X'i yeniden adlandır |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(x = "X1") |
Y'yi yeniden adlandır |
ggplot(df, aes(x = x1, y = y)) + geom_point() + labs(y = "y1") |
Ölçeği kontrol edin |
ggplot(df, aes(x = x1, y = y)) + geom_point() + scale_y_continuous(breaks = seq(10, 35, by = 10)) + scale_x_continuous(breaks = seq(2, 5, by = 1) |
Günlük oluştur |
ggplot(df, aes(x =log(x1), y = log(y))) + geom_point() |
Tema |
ggplot(df, aes(x = x1, y = y)) + geom_point() + theme_classic() |
Kayıt etmek |
ggsave("my_fantastic_plot.png.webp") |