Ggplot2 kullanarak R içinde Dağılım Grafiği (Örnek ile)

İçindekiler:

Anonim

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 <-2018

paste("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")