R'de Çubuk Grafik ve Histogram Örneği

⚡ Akıllı Özet

R'de çubuk grafik ve histogram, kategorik sayılar için geom_bar() ve sürekli dağılımlar için geom_histogram() kullanılarak ggplot2 ile oluşturulur. Bu kılavuz, renk ve grup özelleştirmesini ele almaktadır.pingmtcars veri kümesinde istifleme, yönlendirme, gruplandırma ve çubuk içi etiketleme işlemleri.

  • 📊 Temel Ayrım: Çubuk grafik kategorik bir değişkeni özetlerken, histogram tek bir sürekli değişkeni aralıklara ayırır.
  • 🧱 Grafiklerin Grameri: Her grafik bir veri kümesini ve bir aes() haritasını birleştirir.pingve artı işaretiyle birleştirilmiş geometrik bir nesne.
  • 🎨 Renk Kontrolü: Tek tip renk için `geom_bar()` fonksiyonunun içine `fill`, çubuk renklerini gruplara göre değiştirmek için ise `aes()` fonksiyonunun içine `fill` özelliğini yerleştirin.
  • 📐 Pozisyon Ayarlamaları: `position = “fill”` ifadesi sayıları yüzdelere dönüştürür ve `position_dodge()` ifadesi gruplandırılmış çubukları yan yana yerleştirir.
  • 🔢 Değerlerin Grafiğe Dökülmesi: Y ekseninde grup ortalaması gibi hesaplanmış bir istatistik zaten mevcut olduğunda, Pass stat = “identity” değeri kullanılır.
  • 📏 Histogram Bölümlendirme: geom_histogram() fonksiyonunda bölme sayısını veya bölme genişliğini ayarlayın, çünkü varsayılan 30 bölme sayısı nadiren verilere uygundur.

R'de Çubuk Grafik Histogramı

R programlama dilinde Çubuk Grafik nedir?

Çubuk grafik, kategorik değişkenleri x ekseninde görüntülemenin harika bir yoludur. Bu tür bir grafik, y eksenindeki iki yönü belirtir.

  1. İlk yöntem, her gruptaki oluşum sayısını sayar.
  2. İkinci grafik ise y ekseninde bir değişkenin özet istatistiğini (minimum, maksimum, ortalama vb.) gösterir.

Aşağıdaki değişkenleri içeren mtcars veri setini kullanacaksınız:

  • silindir: Arabadaki silindir numarası. Sayısal değişken
  • am: Şanzıman tipi. Otomatik için 0 ve manuel için 1. Sayısal değişken
  • mpg: Galon başına mil. Sayısal değişken

Histogramlar birbirine çok benzediği için, herhangi bir kod yazmadan önce aralarındaki farkı belirlemekte fayda var.

R'de Çubuk Grafik ve Histogram Arasındaki Temel Farklar

İki grafik birbirine benziyor ve sürekli karıştırılıyorlar. Farklı soruları yanıtlıyorlar ve farklı geometrik şekiller kullanıyorlar.

Kriterler Grafik çubuğu Histogram
X ekseni değişkeni Kategorik veya faktör Sürekli ve sayısal
Bir barın neyi temsil ettiği Bir kategori Bir değer aralığı veya bölmesi
Çubuklar arasındaki boşluklar Evet, kategoriler ayrıdır. Hayır, çöp kutuları yan yana.
Bar siparişi Serbestçe yeniden düzenlenebilir. Sayısal ölçekle sabitlenmiş
Soru cevap Gruplar nasıl karşılaştırılıyor? Bir değişkenin dağılımı nasıldır?
ggplot2 nesnesi geom_bar() geom_histogram()

Genel kural şudur: Çubukların yeniden sıralanması hala anlamlıysa, bu bir çubuk grafiğidir. Yeniden sıralama anlamı bozarsa, bu bir histogramdır. Aynı sürekli değişkenin çeyrek dilimlere dayalı özetleri için ise şunu kullanın: kutu arsa.

R'de Çubuk Grafik Nasıl Oluşturulur?

Grafik oluşturmak için Ryayına hazır grafikler oluşturan ggplot kütüphanesini kullanabilirsiniz. Bu kütüphanenin temel sözdizimi şöyledir:

ggplot(data, mapping = aes()) +
geometric object 

arguments: 
data: dataset used to plot the graph 
mapping: Control the x and y-axis 
geometric object: The type of plot you want to show. The most common objects are:

- Point: `geom_point()`
- Bar: `geom_bar()`
- Line: `geom_line()`
- Histogram: `geom_histogram()` 

Bu eğitim, çubuk grafik çizen geom_bar() geometrik nesnesine ve sürekli veriler için geom_histogram() nesnesine odaklanmaktadır.

Çubuk grafik: sayım

İlk grafiğiniz geom_bar() ile silindirin frekansını gösteriyor. Aşağıdaki kod en temel sözdizimidir.

library(ggplot2)
# Most basic bar chart
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar()

Code açıklama

  • Veri kümesi mtcar'larını ggplot'a aktarırsınız.
  • aes() fonksiyonunun argümanı içinde, x eksenini cyl faktör değişkenine ayarlarsınız.
  • + işareti, R'nin kodu okumaya devam etmesini istediğiniz anlamına gelir. Kodu kırarak daha okunabilir hale getirir.
  • Geometrik nesne için geom_bar() öğesini kullanın.

Çıktı:

Çubuk grafik: sayım

not: değişkenleri bir faktöre dönüştürdüğünüzden emin olun, aksi takdirde R değişkenleri sayısal olarak ele alır. Aşağıdaki örneğe bakın.

Çubuk grafik: sayım

Grafiği özelleştirin

Grafiği özelleştirmek için dört bağımsız değişken iletilebilir:

- `stat`: Controls what is plotted on the y-axis. By default `count`, which tallies rows. To plot a value you already computed, pass `stat = "identity"`
- `alpha`: Control density of the color
- `fill`: Change the color of the bar
- `size`: Control the size the bar	

Çubukların rengini değiştirme

Çubukların rengini değiştirebilirsiniz. Çubukların renklerinin hepsinin benzer olduğunu unutmayın.

# Change the color of the bars
ggplot(mtcars, aes(x = factor(cyl))) +
    geom_bar(fill = "coral") +
    theme_classic()

Code açıklama

  • Çubukların renkleri aes() haritası tarafından kontrol edilir.ping Geometrik nesnenin içinde (yani ggplot() içinde değil). `fill` argümanlarıyla rengi değiştirebilirsiniz. Burada mercan rengini seçiyorsunuz.

Çıktı:

Çubukların Rengini Değiştirme

Bu kodu kullanabilirsiniz:

grDevices::colors()

R'de bulunan tüm renkleri görmek için. Yaklaşık 650 renk vardır.

Yoğunluğu değiştir

Çubukların renginin yoğunluğunu artırabilir veya azaltabilirsiniz

# Change intensity
ggplot(mtcars,
        aes(factor(cyl))) +
    geom_bar(fill = "coral",
        alpha = 0.5) +
    theme_classic()

Code açıklama

  • Çubuğun yoğunluğunu artırmak/azaltmak için alfa değerini değiştirebilirsiniz. Yüksek alfa değeri yoğunluğu artırır, düşük alfa değeri ise azaltır. Alfa değeri 0 ile 1 arasında değişir. 1'de renk paletle tam olarak eşleşir; 0'da ise çubuk görünmez olur. Burada alfa = 0.5 seçiyorsunuz.

Çıktı:

Yoğunluğu Değiştir

Gruplara göre renk

Çubukların renklerini değiştirebilirsiniz; bu, her grup için farklı bir renk anlamına gelir. Örneğin, cyl değişkeninin üç düzeyi vardır, o zaman çubuk grafiğini üç renkle çizebilirsiniz.

# Color by group
ggplot(mtcars, aes(factor(cyl),
        fill = factor(cyl))) +
    geom_bar()

Code açıklama

  • `aes()` fonksiyonundaki `fill` argümanı çubuğun rengini değiştirir. Rengi değiştirmek için `fill = x ekseni değişkeni` şeklinde ayarlamanız gerekir. Örneğinizde, x ekseni değişkeni `cyl`'dir; `fill = factor(cyl)`

Çıktı:

Gruplara Göre Renk

Çubuklara grup ekleme

Y eksenini başka bir faktör seviyesine göre daha da bölebilirsiniz. Örneğin, silindir tipine göre otomatik ve manuel şanzıman sayısını sayabilirsiniz.

Aşağıdaki gibi ilerleyeceksin:

  • Adım 1: mtcars veri kümesiyle veri çerçevesini oluşturun
  • Adım 2: Otomatik şanzıman için am değişkenini auto ve manuel şanzıman için man olarak etiketleyin. ggplot() fonksiyonunda factor() kullanmanıza gerek kalmaması için am ve cyl'yi bir faktör olarak dönüştürün.
  • Adım 3: Silindir başına iletim sayısını saymak için çubuk grafiğini çizin
library(dplyr)
# Step 1
data <- mtcars %>% 
#Step 2
mutate(am = factor(am, labels = c("auto", "man")),
    cyl = factor(cyl))

Veri seti hazır olduğunda, grafiği çizebilirsiniz:

# Adım 3

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar() +
    theme_classic()

Code açıklama

  • ggplot() çağrısı veri kümesi verilerini ve aes() haritasını alır.ping.
  • aes()'e x ekseni değişkenini ve çubuğu doldurmak için hangi değişkenin gerekli olduğunu (örn. am) eklersiniz.
  • geom_bar(): Çubuk grafiğini oluşturun

Çıktı:

Barlara Grup Ekleme

Haritaping Çubuk grafiği, her seviye için bir renk olmak üzere iki renkle dolduracaktır. Veri kümesindeki diğer faktör değişkenlerini seçerek grubu değiştirmek zahmetsizdir.

Yüzde cinsinden çubuk grafik

Çubuğu ham sayım yerine yüzde olarak görselleştirebilirsiniz.

# Yüzde cinsinden çubuk grafik

ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = "fill") +
    theme_classic()

Code açıklama

  • Y ekseninde yüzde içeren bir grafik oluşturmak için geom_bar() bağımsız değişkeninde konum = "doldur" seçeneğini kullanın.

Çıktı:

Yüzde Olarak Çubuk Grafik

Yan yana çubuklar

Sütun grafiğini grup değişkeniyle yan yana çizmek kolaydır.

# Bar chart side by side
ggplot(data, aes(x = cyl, fill = am)) +
    geom_bar(position = position_dodge()) +
    theme_classic()

Code açıklama

  • pozisyon=position_dodge(): Çubukların nasıl düzenleneceğini açıkça anlatır

Çıktı:

Yan Yana Çubuklar

Özet İstatistikli Çubuk Grafik

Eğitimin ikinci bölümünde, y ekseninde bir sayım yerine hesaplanmış bir değer yer almaktadır. Bunun hala bir çubuk grafik olduğunu unutmayın: gerçek bir histogram daha aşağıda ele alınmıştır ve farklı bir geometrik nesne kullanır.

Amacınız her silindir türü için galon başına ortalama kilometreyi gösteren bir grafik oluşturmaktır. Bilgilendirici bir grafik çizmek için şu adımları izleyeceksiniz:

  • Adım 1: Silindir başına galon başına ortalama mil ile yeni bir değişken oluşturun
  • Adım 2: Temel bir histogram oluşturun
  • 3. Adım: Yönü değiştirin
  • 4. Adım: Rengi değiştirin
  • 5. Adım: Boyutu değiştirin
  • 6. Adım: Grafiğe etiket ekleyin

) 1 Adım Yeni bir değişken oluştur

Arabadaki silindir sayısına göre galon başına ortalama mili döndüren data_histogram adlı bir veri çerçevesi oluşturursunuz. Bu yeni değişkene ortalama_mpg adını verirsiniz ve ortalamayı iki ondalık sayıyla yuvarlarsınız.

# Adım 1

data_histogram <- mtcars %>%
mutate(cyl = factor(cyl)) %>%
group_by(cyl) %>%
summarize(mean_mpg = round(mean(mpg), 2))

) 2 Adım Temel bir histogram oluşturun

Histogramı çizebilirsiniz. Henüz bir müşteriye teslim edilecek kadar geliştirilmemiş olsa da, trendi zaten gösteriyor.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity")

Code açıklama

  • aes()'in artık iki değişkeni var. cyl değişkeni x eksenini ifade eder ve ortalama_mpg ise y eksenini ifade eder.
  • `stat = “identity”` parametresini geçirerek `geom_bar()` fonksiyonunun satırları saymak yerine y ekseni değişkenini olduğu gibi kullanmasını sağlarsınız. `geom_bar()` fonksiyonunun varsayılan değeri `stat = “count”`'tur.

Çıktı:

Histogram

) 3 Adım Yönü değiştir

Grafiğin yönünü dikeyden yataya değiştirirsiniz.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) +
    geom_bar(stat = "identity") +
    coord_flip()

Code açıklama

  • Grafiğin yönünü coord_flip() ile kontrol edebilirsiniz.

Çıktı:

Histogram

) 4 Adım rengi değiştir

Çubukların renklerini x ekseni değişkeninin faktör düzeyine göre ayırt edebilirsiniz.

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    coord_flip() +
    theme_classic()

Code açıklama

  • Grafiği, fill=cyl map parametresini kullanarak gruplar halinde çizebilirsiniz.pingR, cyl değişkeninin seviyelerine bağlı olarak renkleri otomatik olarak ayarlar.

Çıktı:

Histogram

) 5 Adım Boyutunu değiştirmek

Grafiğin daha güzel görünmesini sağlamak için çubuğun genişliğini azaltırsınız.

graph <- ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity",
        width = 0.5) +
    coord_flip() +
    theme_classic()

Code açıklama

  • `geom_bar()` fonksiyonundaki `width` argümanı çubuğun kalınlığını kontrol eder. Daha büyük bir değer çubuğu daha geniş yapar.
  • Grafik, bir sonraki adımda değiştirilmeden yeniden kullanılacağı için grafik nesnesinde saklanır. Ara grafiklerin saklanması, kodun okunabilirliğini artırır.

Çıktı:

Histogram

) 6 Adım Grafiğe etiket ekleme

Son adımda, mean_mpg değeri her bir çubuğun içine etiket olarak eklenir.

graph +
    geom_text(aes(label = mean_mpg),
        hjust = 1.5,
        color = "white",
        size = 3) +
    theme_classic()

Code açıklama

  • geom_text() işlevi metnin estetiğini kontrol etmek için kullanışlıdır.
    • label=: Çubukların içine bir etiket ekleyin
    • ortalama_mpg: Etiket için ortalama_mpg değişkenini kullanın
  • hjust parametresi, etiketin çubuk üzerindeki konumunu kontrol eder. 1'e yakın değerler etiketi çubuğun ucuna yakın yerleştirirken, daha büyük değerler etiketi eksene doğru iter. Grafiğin yönü dikey ise, hjust değerini vjust olarak değiştirin.
  • color=”white”: Metnin rengini değiştirir. Burada beyaz rengi kullanıyorsunuz.
  • size=3: Metnin boyutunu ayarlayın.

Çıktı:

Histogram

R'de Çubuk Grafikteki Çubukları Sıralama ve Etiketleme Nasıl Yapılır?

Taslak bir grafiği yayınlanabilir bir grafiğe dönüştüren iki son rötuş vardır: çubukları değere göre sıralamak ve eksenleri doğru şekilde etiketlemek.

Çubukların yeniden düzenlenmesi. ggplot2 varsayılan olarak faktör seviyelerini alfabetik olarak sıralar, bu da nadiren en bilgilendirici sıralama olur. İkinci bir değişkene göre sıralamak için x değişkenini reorder() içine alın:

# Sort the bars from lowest to highest mean_mpg
ggplot(data_histogram, aes(x = reorder(cyl, mean_mpg), y = mean_mpg)) +
    geom_bar(stat = "identity", fill = "coral") +
    theme_classic()

Sıralama değişkeninin başına eksi işareti ekleyin, reorder(cyl, -mean_mpg) komutunu kullanarak yönü tersine çevirin.

Başlıklar ve eksen etiketleri ekleniyor. `labs()` fonksiyonu, tüm metin öğelerini tek bir çağrıda ayarlar:

ggplot(data_histogram, aes(x = cyl, y = mean_mpg, fill = cyl)) +
    geom_bar(stat = "identity") +
    labs(title = "Average fuel economy by cylinder count",
        subtitle = "mtcars dataset",
        x = "Number of cylinders",
        y = "Mean miles per gallon",
        fill = "Cylinders",
        caption = "Source: mtcars") +
    theme_classic()

Gösterge başlığını tamamen kaldırmak için labs() içinde fill = NULL olarak ayarlayın ve x ekseninde gruplara ad verilmişse göstergeyi kaldırmak için theme(legend.position = “none”) kullanın.

Kendi renklerinizi seçmek. Varsayılan renk paletini, kurumunuzun stiline uygun olacak şekilde özel bir paletle değiştirin:

scale_fill_manual(values = c("4" = "#0e9cd1", "6" = "coral", "8" = "grey40"))

R'de geom_histogram() kullanarak histogram nasıl oluşturulur?

Histogram, tek bir sürekli değişkenin nasıl dağıldığını gösterir. ggplot2, kategorileri saymak yerine, sayısal aralığı bölmelere ayırır ve her bir bölmeye kaç gözlemin düştüğünü sayar.

library(ggplot2)
# Most basic histogram
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram()

R, varsayılan 30 bölme sayısının keyfi olduğunu belirterek, daha iyi bir bölme sayısı seçmenizi öneren bir mesaj yazdırır. Bunu iki argüman kontrol eder:

  • kutularıAralığı bölmek için kullanılacak aralık sayısı.
  • genişlikHer aralığın genişliği, değişkenin birimleriyle ifade edilir. Birimlerin anlamlı olduğu durumlarda bunu kullanın.
# Set the number of bins
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(bins = 10, fill = "coral", color = "white") +
    theme_classic()

# Or set the width of each bin instead
ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(binwidth = 4, fill = "coral", color = "white") +
    theme_classic()

Histogramda en önemli seçim, bölme (binning) seçimidir. Çok az bölme, ikinci bir tepe gibi gerçek yapıyı gizler; çok fazla bölme ise grafiği gürültüye dönüştürür. Bir değere karar vermeden önce birkaç farklı değer deneyin.

Grupları karşılaştırma. Dağılımların okunabilir kalması için bir faktörü eşleştirin ve konumunu ayarlayın:

ggplot(mtcars, aes(x = mpg, fill = factor(cyl))) +
    geom_histogram(bins = 10, position = "identity", alpha = 0.5) +
    theme_classic()

Position = “identity” ve azaltılmış alfa değeriyle histogramlar üst üste gelir, böylece şekilleri doğrudan karşılaştırabilirsiniz. Bölmeleri yan yana görmek isterseniz position = “dodge” kullanın.

Sayım yerine yoğunluk. Grupların boyutları farklı olduğunda, alanlar karşılaştırılabilir olacak şekilde yoğunluğu çizin ve üzerine düzeltilmiş bir eğri yerleştirin:

ggplot(mtcars, aes(x = mpg)) +
    geom_histogram(aes(y = after_stat(density)), bins = 10,
        fill = "coral", alpha = 0.6) +
    geom_density(color = "steelblue", linewidth = 1) +
    theme_classic()

R'de Çubuk Grafik ve Histogram: Code Referans

Çubuk grafik, x ekseninde kategorik veriler, y ekseninde ise sayım veya özet istatistikler için uygundur. Aşağıdaki tabloda, yukarıda ele alınan her bir varyant için ggplot2 çağrısı listelenmiştir:

Hedef Code
saymak
ggplot(df, aes(x = factor(x1))) + geom_bar()
Farklı dolgu rengiyle sayın
ggplot(df, aes(x = factor(x1), fill = factor(x1))) + geom_bar()
Yığılmış gruplarla sayın
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar()
Gruplarla yan yana sayın
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = position_dodge())
% olarak yığılmış gruplarla sayın
ggplot(df, aes(x = factor(x1), fill = factor(x2))) + geom_bar(position = "fill")
Değerler (özet istatistik)
ggplot(df, aes(x = factor(x1), y = x2)) + geom_bar(stat = "identity")
Sürekli bir değişkenin histogramı
ggplot(df, aes(x = x1)) + geom_histogram(bins = 30)

SSS

X eksenindeki değişken sürekli ise ve dağılımını görmek istiyorsanız histogram kullanın. X ekseninde farklı kategoriler varsa ve bunları karşılaştırmak istiyorsanız çubuk grafik kullanın.

`aes()` fonksiyonu içinde `fill` değişkeni bir renge eşler, böylece her grup kendi tonunu alır. `aes()` fonksiyonunun dışında, `geom_bar()` fonksiyonunun içinde ise `fill`, her çubuğa uygulanan sabit bir değerdir.

Evrensel bir cevap yok. Gözlem sayısının kareköküyle başlayın, sonra ayarlama yapın. Çok az sayıda bölme, ikinci bir tepe gibi yapıları gizler ve çok fazla bölme ise gürültülü, sivri uçlu bir grafik oluşturur.

Histogramlar, yapay zeka projelerinde keşifsel veri analizinin standart ilk adımıdır ve herhangi bir model eğitilmeden önce çarpıklığı, aykırı değerleri ve sınıf dengesizliğini ortaya çıkarır. Ardından çubuk grafikler, özellik önemini ve kategori sıklıklarını özetler.

Evet. Yapay zeka asistanları, grafiğin basit bir açıklamasından ggplot2 katmanları oluşturabilir ve eksik stat argümanı gibi hataları açıklayabilir. Haritanın doğruluğunu teyit etmek için oluşturulan kodu her zaman kendi verileriniz üzerinde çalıştırın.ping doğrudur.

Bu yazıyı şu şekilde özetleyin: