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.

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.
- İlk yöntem, her gruptaki oluşum sayısını sayar.
- İ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ı:
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.
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ı:
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ı:
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ı:
Ç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ı:
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ı:
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ı:
Ö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ı:
) 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ı:
) 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ı:
) 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ı:
) 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ı:
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) |













