R'de Çubuk Grafik ve Histogram (Örnekle)
Ç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.
- İlki gruplar arasındaki oluşum sayısını sayar.
- İkincisi, y eksenindeki bir değişkenin özet istatistiğini (minimum, maksimum, ortalama vb.) gösterir.
Aşağıdaki değişkenlere sahip 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
Ç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ğitimde, çubuk grafiği oluşturan geom_bar() geometrik nesnesiyle ilgileneceksiniz.
Ç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()
Kod Açıklama
- Veri kümesi mtcar'larını ggplot'a aktarırsınız.
- aes() argümanının içine, x eksenini faktör değişkeni (silindir) olarak eklersiniz
- + 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`: Control the type of formatting. By default, `bin` to plot a count in the y-axis. For continuous value, 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()
Kod Açıklama
- Çubukların renkleri geometrik nesnenin içindeki aes() eşlemesi tarafından kontrol edilir (yani ggplot()'ta değil). Rengi dolgu argümanlarıyla değiştirebilirsiniz. Burada mercan rengini siz seçersiniz.
Çı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()
Kod Açıklama
- Çubuğun yoğunluğunu artırmak/azaltmak için alfa değerini değiştirebilirsiniz. Büyük alfa yoğunluğu artırır, düşük alfa ise yoğunluğu azaltır. alfa 0 ile 1 arasında değişir. 1 ise renk paletle aynıdır. 0 ise renk beyazdır. Alfa = 0.1'i seçersiniz.
Çı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()
Kod Açıklama
- aes() içindeki argüman dolgusu çubuğun renginin değiştirilmesine olanak sağlar. Fill = x ekseni değişkenini ayarlayarak rengi değiştirirsiniz. Örneğinizde x ekseni değişkeni cyl'dir; doldur = faktör(sil)
Çı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 setiniz hazır, grafiği çizebilirsiniz;
# Adım 3
ggplot(data, aes(x = cyl, fill = am)) + geom_bar() + theme_classic()
Kod Açıklama
- Ggpplot() veri kümesi verilerini ve aes() öğesini içerir.
- 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ı:
Eşleme, çubuğu her seviye için bir tane olmak üzere iki renkle dolduracaktır. Veri setindeki 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()
Kod 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()
Kod Açıklama
- pozisyon=position_dodge(): Çubukların nasıl düzenleneceğini açıkça anlatır
Çıktı:
Histogram
Çubuk grafik eğitiminin ikinci bölümünde, değişken grubunu y eksenindeki değerlerle temsil edebilirsiniz.
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. Müşteriye teslim edilmek üzere iletişim kurmaya hazır değil ancak bize trend hakkında bir sezgi veriyor.
ggplot(data_histogram, aes(x = cyl, y = mean_mpg)) + geom_bar(stat = "identity")
Kod 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.
- Y eksenindeki değişkeni sayısal bir değer olarak belirtmek için stat=”identity” argümanını iletmeniz gerekir. geom_bar, varsayılan değer olarak stat=”bin”i kullanır.
Çı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()
Kod 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()
Kod Açıklama
- Fill= silindir eşlemesi ile grafiği gruplara göre çizebilirsiniz. R, silindir değişkeninin seviyelerine göre renkleri otomatik olarak halleder
Çı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()
Kod Açıklama
- geom_bar() içindeki genişlik argümanı çubuğun boyutunu kontrol eder. Daha büyük değer genişliği arttırır.
- Grafiği değişken grafikte sakladığınızı unutmayın. Bunu yaparsınız çünkü bir sonraki adım değişken grafiğinin kodunu değiştirmeyecektir. Kodun okunabilirliğini artırır.
Çıktı:
) 6 Adım Grafiğe etiket ekleme
Son adım, etikete ortalama_mpg değişkeninin değerinin eklenmesinden oluşur.
graph + geom_text(aes(label = mean_mpg), hjust = 1.5, color = "white", size = 3) + theme_classic()
Kod 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
- hsadece etiketin konumunu kontrol eder. 1'e kapalı değerler etiketi çubuğun üst kısmında görüntüler, daha yüksek değerler ise etiketi alta getirir. Grafiğin yönü dikey ise hjust'ı vjust olarak değiştirin.
- color=”white”: Metnin rengini değiştirir. Burada beyaz rengi kullanıyorsunuz.
- size=3: Metnin boyutunu ayarlayın.
Çıktı:
ÖZET
Çubuk grafik, x ekseni kategorik bir değişken olduğunda kullanışlıdır. Y ekseni bir sayım veya özet istatistik olabilir. Aşağıdaki tabloda çubuk grafiğin ggplot2 ile nasıl kontrol edileceği özetlenmektedir:
Nesnel | Kod |
---|---|
saymak |
ggplot(df, eas(x= factor(x1)) + geom_bar() |
Farklı dolgu rengiyle sayın |
ggplot(df, eas(x= factor(x1), fill = factor(x1))) + geom_bar() |
Yığılmış gruplarla sayın |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Gruplarla yan yana sayın |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar() |
% olarak yığılmış gruplarla sayın |
ggplot(df, eas(x= factor(x1), fill = factor(x2))) + geom_bar(position=position_dodge()) |
Değerler |
ggplot(df, eas(x= factor(x1)+ y = x2) + geom_bar(stat="identity") |