Ana içeriğe atla

Tüm R Kullanıcılarının Grafikler Hakkında Sorduğu 15 Soru

Temel grafik türlerinden karmaşık grafik türlerine kadar farklı R grafikleri vardır. Burada bunları nasıl oluşturacağınızı keşfediyoruz.
Güncel 3 Eki 2026  · 15 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity
datacamp'in r kurs kütüphanesini keşfedin afişi

R, yoğunluk grafikleri, nokta grafikleri, kutu grafikleri ve saçılım grafikleri gibi temel türlerden, olasılık grafikleri gibi istatistiksel olarak daha karmaşık türlere kadar farklı grafik türleri oluşturmanıza olanak tanır.

Ayrıca, düşük özelleştirmeyle temel grafikler üretmekten, etkileşimli grafiklerle birlikte kapsamlı özelleştirme içeren gelişmiş grafikler çizmeye kadar ilerlemenizi sağlar. Yine de, R grafiklerimiz için her zaman istediğimiz sonuçları elde edemeyiz: Stack Overflow, grafiklerle ilgili sorularımızla dolup taşıyor ve bunların birçoğu tekrar eden türden.

İşte bu yüzden DataCamp, sık sorulan tüm soruları ve en yüksek oy alan cevaplarını tek bir blog yazısında bir araya getirmeye karar verdi.

R'de grafik oluşturmayı pratik etmek için, R'de veri görselleştirme kursunu deneyin.

15 R Grafik Sorusu

1. Boş Bir R Grafiği Nasıl Çizilir

Yeni Bir Grafik Çerçevesi Açın

R'de aşağıdaki gibi boş bir grafik çerçevesi açabilir ve grafik aygıtını etkinleştirebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90Lm5ldygpXG5cbiMgT3IgdHJ5IG91dCB0aGUgZm9sbG93aW5nIGNvbW1hbmQgXG4jIGZyYW1lKCkifQ==

Not edin ki plot.new() ve frame() işlevleri, eksenleri, etiketleri veya çerçevesi olmayan yeni bir grafik çerçevesi tanımlar. Bu, yeni bir grafik oluşturulacağını belirtir: Henüz açık bir grafik penceresi yoksa yeni bir pencere açılır, aksi halde mevcut pencere yeni grafiği tutacak şekilde hazırlanır. Bu işlevler hakkında daha fazlasını buradan okuyabilirsiniz.

  • x11() ayrıca X Pencere Sistemi (sürüm 11) için R'de yeni bir Windows aygıtı açabilir!
  • quartz(), OS X Sistemi için bir grafik aygıt sürücüsü başlatır.

Grafik Penceresinin Ölçülerini Ayarlayın

Az önce yaptığınız boş grafiğin yatay ve dikey boyutlarını ayarlamak için plot.window() işlevini de kullanabilirsiniz:

plot.new()
pWidth = 3
pHeight = 2
plot.window(c(0,pWidth),
            c(0,pHeight))

Gerçek Anlamda Boş Bir Grafik Çizin

plot() işleviyle boş bir grafik çizebilirsiniz. Ayrıca, mtext() ve title() işlevleriyle eksenleri, eksen etiketlerini ve bir başlığı ekleyerek boş grafiği doldurun.

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERyYXcgYW4gZW1wdHkgcGxvdFxucGxvdCg1LCBcbiAgICAgNSwgXG4gICAgIHR5cGU9XCJuXCIsIFxuICAgICBheGVzPUZBTFNFLCBcbiAgICAgYW5uPUZBTFNFLCBcbiAgICAgeGxpbT1jKDAsIDEwKSwgXG4gICAgIHlsaW0gPSBjKDAsMTApKVxuXG4jIEFkZCB0ZXh0IHRvIHRoZSB4LWF4aXNcbm10ZXh0KFwieC1heGlzXCIsIFxuICAgICAgc2lkZT0xKVxuXG4jIEFkZCB0ZXh0IHRvIHRoZSB5LWF4aXNcbm10ZXh0KFwieS1heGlzXCIsXG4gICAgICBzaWRlPTIpIFxuXG4jIEFkZCBhIHRpdGxlXG50aXRsZShcIkFuIFIgUGxvdFwiKSJ9

Grafik için (5,5) koordinatlarını verirsiniz, ancak type argümanını "n" yaparak herhangi bir çizim göstermezsiniz.

İpucu: bu argümanı "p" veya "b" olarak ayarlamayı deneyin ve ne olduğuna bakın!

Ayrıca grafiği açıklama notlarıyla belirtmezsiniz, ancak x ve y eksenlerinde 0 ile 10 arasında sınırlar koyarsınız.

Son olarak, box() işlevini kullanarak grafiğinizin etrafına bir kutu çizmeyi ve points() işleviyle birkaç nokta eklemeyi seçebilirsiniz:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERyYXcgYW4gZW1wdHkgcGxvdFxucGxvdCg1LCBcbiAgICAgNSwgXG4gICAgIHR5cGU9XCJuXCIsIFxuICAgICBheGVzPUZBTFNFLCBcbiAgICAgYW5uPUZBTFNFLCBcbiAgICAgeGxpbT1jKDAsIDEwKSwgXG4gICAgIHlsaW0gPSBjKDAsMTApKVxuXG4jIEFkZCB0ZXh0IHRvIHRoZSB4LWF4aXNcbm10ZXh0KFwieC1heGlzXCIsIFxuICAgICAgc2lkZT0xKVxuXG4jIEFkZCB0ZXh0IHRvIHRoZSB5LWF4aXNcbm10ZXh0KFwieS1heGlzXCIsXG4gICAgICBzaWRlPTIpIFxuXG4jIEFkZCBhIHRpdGxlXG50aXRsZShcIkFuIFIgUGxvdFwiKVxuXG4jRHJhdyBhIGJveFxuYm94KClcblxuI1B1dCAocmVkKSBwb2ludCBpbiB0aGUgcGxvdCBhdCAoNSw1KVxucG9pbnRzKDUsXG4gICAgICAgNSwgXG4gICAgICAgY29sPVwicmVkXCIpIFxucG9pbnRzKDUsIFxuICAgICAgIDcsIFxuICAgICAgIGNvbD1cIm9yYW5nZVwiLCBcbiAgICAgICBwY2g9MywgXG4gICAgICAgY2V4PTIpXG5wb2ludHMoYygwLCAwLCAxKSwgXG4gICAgICAgYygyLCA0LCA2KSwgXG4gICAgICAgY29sPVwiZ3JlZW5cIiwgXG4gICAgICAgcGNoPTQpIn0=

Not edin ki birden çok noktayı aynı anda çizmek için x ve y koordinatlarını vektörlerde toplayabilirsiniz. pch argümanı bir sembol seçmenizi sağlar; cex argümanına atanan değer ise çizilen metin ve sembollerin varsayılan ayara göre ne kadar ölçekleneceğini belirtir.

İpucu: hangi sayının hangi sembole karşılık geldiğini görmek istiyorsanız, buraya tıklayın.

2. R Grafiklerinin Eksen Etiketleri ve Başlığı Nasıl Ayarlanır

R grafiklerinin eksenleri, Stack Overflow sorularının en popüler konularından birini oluşturur; Bu konuyla ilgili sorular oldukça çeşitlidir.

DataCamp'in oldukça yaygın bulduğu soru türlerini öğrenmek için okumaya devam edin!

Eksenleri Adlandırın (Üst/Alt Simgeyle) ve Bir R Grafiğine Başlık Koyun

Eksenleri kolayca adlandırabilir ve grafiğinizi kitleniz için daha özgül ve anlaşılır kılmak üzere bir başlık ekleyebilirsiniz.

Bunu, ana başlık için main, alt başlık için sub, x ekseni etiketi için xlab ve y ekseni etiketi için ylab argümanlarını ekleyerek kolayca yapabilirsiniz.

Not edin ki başlıkta üst veya alt simge kullanmak isterseniz, bunları plot() işlevinin main argümanında kolayca ekleyebilirsiniz. Bir expression() kullanmaya ve üst simgeler için ^ simgesini, alt simge için ise köşeli parantezleri kullanmaya dikkat edin.

Aşağıdaki DataCamp Light bölümünde deneyin:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhXG5wbG90KHgsXG4gICAgIHksXG4gICAgIG1haW49ZXhwcmVzc2lvbihcIm1haW4gdGl0bGVcIl4yKSwgXG4gICAgIHN1Yj1leHByZXNzaW9uKFwic3ViLXRpdGxlXCJbMl0pLCBcbiAgICAgeGxhYj1cIngtYXhpcyBsYWJlbFwiLCBcbiAgICAgeWxhYj1cInktYXhpcyBsYWJlbFwiKSJ9

expression() ve paste() işlevlerini birleştiren kodu kullanarak eksen etiketlerinizde Yunanca harfler de bulundurabilirsiniz. Şu kod parçasını çalıştırın:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhXG5wbG90KHgsXG4gICAgIHksXG4gICAgIHhsYWIgPSBleHByZXNzaW9uKHBhc3RlKFwiR3JlZWsgbGV0dGVyIFwiLCBwaGkpKSxcbiAgICAgeWxhYiA9IGV4cHJlc3Npb24ocGFzdGUoXCJHcmVlayBsZXR0ZXIgXCIsbXUpKSkifQ==

Eksen Etiketlerinin Görünümünü Ayarlayın

X ve y ekseni etiketlerinin görünümünü ayarlamak için col.lab ve cex.lab argümanlarını kullanabilirsiniz. İlk argüman x ve y ekseni etiketlerinin rengini değiştirmek için, ikincisi ise cex ayarına (varsayılan) göre x ve y ekseni etiketlerinin boyutunu belirlemek için kullanılır.
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhXG5wbG90KHgsXG4gICAgIHksXG4gICAgIG1haW49ZXhwcmVzc2lvbihcIm1haW4gdGl0bGVcIl4yKSwgXG4gICAgIHN1Yj1leHByZXNzaW9uKFwic3ViLXRpdGxlXCJbMl0pLCBcbiAgICAgeGxhYj1cIngtYXhpcyBsYWJlbFwiLCBcbiAgICAgeWxhYj1cInktYXhpcyBsYWJlbFwiLFxuICAgICBjb2wubGFiPVwiYmx1ZVwiLFxuICAgICBjZXgubGFiPTAuNzUpIn0=

Bu argümanlar hakkında daha fazla bilgi için bu sayfaya gidin.

Bir Grafiğin Eksen Etiketlerini ve Açıklamalarını Kaldırın

Bir grafiğin eksen değerlerinden kurtulmak istiyorsanız, önce xaxt ve yaxt argümanlarını ekleyip "n" olarak ayarlayabilirsiniz. Bu argümanlar, x ekseni türünü belirten bir karakter alır. Aşağıdaki komutta olduğu gibi "n" verirseniz, eksenin çizimini bastırabilirsiniz.

xaxt ve yaxt argümanlarına başka herhangi bir karakter vererek x ve y eksenlerinin çizileceğini unutmayın.

Sonra, eksen etiketlerinin kaldırıldığından emin olmak için ann açıklama argümanını ekleyip FALSE olarak ayarlayabilirsiniz.
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhXG5wbG90KHgsXG4gICAgIHksXG4gICAgIHhheHQ9XCJuXCIsXG4gICAgIHlheHQ9XCJuXCIsXG4gICAgIGFubj1GQUxTRSkifQ==

İpucu: aradığınız bilgi bu değil mi? Bu sayfaya gidin.

Bir Grafiğin Eksen Etiketlerini Döndürün

Her eksene karşılık gelen sayıları döndürmek için axis() işlevine las argümanını ekleyebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhLCBubyBheGVzXG5wbG90KHgsXG4gICAgIHksIFxuICAgICBheGVzPUZBTFNFKVxuXG4jIERyYXcgYSBib3hcbmJveCgpXG5cbiMgQWRkIChtb2RpZmllZCkgYXhlcyB0byB0aGUgcGxvdFxuYXhpcygyLCBcbiAgICAgbGFzPTIpXG5heGlzKDEsIFxuICAgICBsYXM9MCkifQ==

Not edin nasıl ki bu, aslında plot() işlevine, henüz eksenlerin çizilmeyeceğini belirten bir argüman eklemenizi gerektiriyor: bu görev, sonrasında gelen iki axis() işlevinindir.

las argümanı üç değerden birini alabilir. Seçtiğiniz seçeneğe göre etiketin konumu değişir: 0 seçerseniz etiket her zaman eksene paralel olur (varsayılan); 1 seçerseniz etiket yatay yerleştirilir. Eksene dik olmasını isterseniz 2'yi, dikey yerleştirilmesini isterseniz 3'ü seçin.

Ayrıca daha fazlası da var. axis() işlevinin sunduğu olanaklar hakkında daha fazla bilgi edinmek istiyorsanız okumaya devam edin!

R Grafiğinizin Eksen Etiketlerini Taşıyın

Yani, eksen etiketlerini etrafta taşımak mı istiyorsunuz?

Merak etmeyin, bunu axis() işleviyle yapabilirsiniz; Bu işlevin, bu derste daha önce de fark etmiş olabileceğiniz gibi, önce eksenleri nereye çizmek istediğinizi belirtmenize izin verdiğini unutmayın. Diyelim ki x eksenini grafik alanının üstüne, y eksenini ise sağına çizmek istiyorsunuz.

Unutmayın axis() işlevine 1 veya 2 geçirirseniz, eksenler sırasıyla grafik alanının altına ve soluna çizilir. Bunun bir örneğini görmek için biraz yukarı kaydırın ve önceki kod parçasına bakın!

Bu, axis() işlevine 3 ve 4 geçirmeniz gerekeceği anlamına gelir:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54PC1zZXEoMCwyKnBpLDAuMSlcbnk8LXNpbih4KVxuXG4jIFBsb3QgdGhlIGRhdGEsIGJ1dCBkb24ndCBwbG90IGF4ZXMgb3IgYW5ub3RhdGlvbnNcbnBsb3QoeCxcbiAgICAgeSxcbiAgICAgYXhlcz1GQUxTRSwgXG4gICAgIGFubj1GQUxTRSlcblxuIyBEcmF3IHRoZSB4LWF4aXMgYWJvdmUgdGhlIHBsb3QgYXJlYVxuYXhpcygzKVxuXG4jIERyYXcgdGhlIHktYXhpcyB0byB0aGUgcmlnaHQgb2YgdGhlIHBsb3QgYXJlYVxuYXhpcyg0KVxuXG4jIERyYXcgYSBib3hcbmJveCgpIn0=

Gördüğünüz gibi, önce temel olarak x ve y'yi çizersiniz, ancak eksenleri ve açıklamaları eklersiniz. Ardından, görmek istediğiniz eksenleri eklersiniz ve konumlarını grafiğe göre belirtirsiniz.

axis() işlevinin sağladığı esneklik giderek artıyor! Bu temel R işlevini kullanarak başka neleri çözebileceğinizi görmek için bir sonraki sık sorulan soruya göz atın.

İpucu: eksen etiketlerindeki metni hjust ve vjust ile nasıl hareket ettireceğinize dair daha fazlası için son soruya gidin!

3. R Grafiğinizin Çentik İşaretlerini Nasıl Eklersiniz ve Aralıklarını Nasıl Değiştirirsiniz

R Grafiğinizin Çentik İşaretlerinin Aralıkları Nasıl Değiştirilir

Grafiğinizin çentik işaretlerini R'nin belirlemesine izin vermek oldukça sinir bozucu olabilir ve bunları ayarlamak isteyeceğiniz bir zaman gelebilir.

1. Grafiğinizin Çentik İşaretlerini Belirlemek için axis() İşlevini Kullanma

Şu kod parçasını düşünün:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERlZmluZSB0aGUgcG9zaXRpb24gb2YgdGljayBtYXJrc1xudjEgPC0gYygwLHBpLzIscGksMypwaS8yLDIqcGkpXG5cbiMgRGVmaW5lIHRoZSBsYWJlbHMgb2YgdGljayBtYXJrc1xudjIgPC0gYyhcIjBcIixcIlBpLzJcIixcIlBpXCIsXCIzKlBpLzJcIixcIjIqUGlcIilcblxuIyBUaGUgZGF0YVxueCA8LSBzZXEoMCwyKnBpLDAuMSlcbnkgPC0gc2luKHgpXG5cbiMgUGxvdCB0aGUgZGF0YVxucGxvdCh4LFxuICAgICB5LFxuICAgICB4YXh0ID0gXCJuXCIpXG5cbiMgQWRkIGFuIGF4aXMgdG8gdGhlIHBsb3QgXG5heGlzKHNpZGUgPSAxLCBcbiAgICAgYXQgPSB2MSwgXG4gICAgIGxhYmVscyA9IHYyLFxuICAgICB0Y2s9LS4wNSkifQ==

Gördüğünüz gibi önce çentik işaretlerinin konumlarını ve etiketlerini tanımlarsınız. Sonra, eksen türünü "n" olarak belirterek eksenin çizimini bastırıp grafiğinizi çizersiniz.

Sonra asıl iş başlar:

  • axis() işlevi, eksenin grafiğin hangi tarafına çizileceğini belirtmenizi sağlar. Bu durumda argüman 1 ile tamamlanmıştır; bu, eksenin alta çizileceği anlamına gelir. Değer 2 olsaydı eksen sola, 3 veya 4 olsaydı sırasıyla üste veya sağa çizilirdi;
  • at argümanı, çentik işaretlerinin hangi noktalara çizileceğini belirtmenize olanak tanır. Bu örnekte V1 içinde tanımlanan konumları kullanırsınız;
  • Benzer şekilde, kullanmak istediğiniz labels değerleri V2 içinde belirtilenlerdir;
  • tck ile çentiklerin yönünü ayarlarsınız: bu argümana negatif bir değer vererek çentiklerin eksenin altında görünmesini belirtirsiniz.

İpucu: tck argümanına pozitif bir değer geçirmeyi deneyin ve ne olduğuna bakın!

Çentiklerin boyutunu tcl ile daha da özelleştirebilir, çentik etiketlerinin görünümünü ise cex.axis, col.axis ve font.axis ile kontrol edebilirsiniz.
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERlZmluZSB0aGUgcG9zaXRpb24gb2YgdGljayBtYXJrc1xudjEgPC0gYygwLHBpLzIscGksMypwaS8yLDIqcGkpXG5cbiMgRGVmaW5lIHRoZSBsYWJlbHMgb2YgdGljayBtYXJrc1xudjIgPC0gYyhcIjBcIixcIlBpLzJcIixcIlBpXCIsXCIzKlBpLzJcIixcIjIqUGlcIilcblxuIyBUaGUgZGF0YVxueCA8LSBzZXEoMCwyKnBpLDAuMSlcbnkgPC0gc2luKHgpXG5cbiMgUGxvdCB0aGUgZGF0YVxucGxvdCh4LFxuICAgICB5LFxuICAgICB4YXh0ID0gXCJuXCIpXG5cbiMgQWRkIGF4aXMgdG8gdGhlIHBsb3QgXG5heGlzKHNpZGUgPSAxLCBcbiAgICAgYXQgPSB2MSwgXG4gICAgIGxhYmVscyA9IHYyLFxuICAgICB0Y2s9LS4xLFxuICAgICB0Y2wgPSAtMC41LFxuICAgICBjZXguYXhpcz0xLjA1LFxuICAgICBjb2wuYXhpcz1cImJsdWVcIixcbiAgICAgZm9udC5heGlzPTUpIn0=

2. R Grafiğinizin Çentik İşaretlerini Belirlemek için Diğer İşlevleri Kullanma

Çentik işaretlerinin konumlarını ve aralarındaki aralık sayısını tanımlamak için par() ve plot() işlevlerini de kullanabilirsiniz.

Not edin ki bu durumda xaxp argümanını kullanırsınız; x ekseninin uçlarında yer alan çentik işaretlerinin konumlarını ve ardından bunlar arasındaki aralık sayısını geçersiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLDIqcGksMC4xKVxueSA8LSBzaW4oeClcblxuIyBQbG90IHRoZSBkYXRhXG5wbG90KHgsXG4gICAgIHksXG4gICAgIHhheHAgPSBjKDAsIDIqcGksIDUpKSJ9

Aşağıdaki kodu çalıştırarak temelde aynı sonucu da elde edebilirsiniz:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhIFxueCA8LSBzZXEoMCwyKnBpLDAuMSlcbnkgPC0gc2luKHgpXG5cbiMgUGxvdCB0aGUgZGF0YSBcbnBsb3QoeCwgXG4gICAgIHksIFxuICAgICB4YXh0PVwiblwiKVxuXG4jIFVzZSBgcGFyKClgIHRvIHNldCBncmFwaGljYWwgYHhheHBgIHBhcmFtZXRlclxucGFyKHhheHA9IGMoMCwgMipwaSwgMikpIFxuXG4jIEFkZCBhbiBheGlzIHRvIHRoZSBwbG90IFxuYXhpcygxKSJ9

Not edin ki bu yalnızca logaritmik ölçek kullanmıyorsanız çalışır. Logaritmik koordinatlar true olarak ayarlanmışsa, yani par(xlog=T) ise, xaxp'ye verdiğiniz üç değerin anlamı farklıdır: küçük bir aralık için n negatiftir. Aksi halde n, 1:3 aralığındadır, bir durum numarası belirtir ve x1 ile x2, kullanıcı koordinatları içinde 10'un en düşük ve en yüksek kuvvetleridir, 10 ^ par(“usr”)[1:2].

Bir örnek:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJuIDwtIDFcblxuIyBUaGUgZGF0YVxueCA8LSBzZXEoMCwgMTAwMDAsIDEpXG55IDwtIGV4cChuKS8oZXhwKG4pK3gpXG5cbiMgU2V0IGdyYXBoaWNhbCBwYXJhbWV0ZXJzIGB4bG9nYCBhbmQgYHhheHBgXG5wYXIoeGxvZz1UUlVFLCBcbiAgICB4YXhwPSBjKDEsIDQsIDMpKVxuXG4jIFBvdCB0aGUgZGF0YSBcbnBsb3QoeCwgXG4gICAgIHksIFxuICAgICBsb2c9XCJ4XCIpICJ9

Bu örnekte par() işlevini kullanırsınız: xlog'u TRUE yapar ve xaxp argümanını ekleyerek uç çentik işaretlerinin koordinatlarını ve aralarındaki aralık sayısını verirsiniz. Bu durumda minimum değeri 1, maksimum değeri 4 olarak ayarlar ve her çentik işareti arasındaki aralık sayısının 3 olması gerektiğini eklersiniz.

Ardından x ve y'yi çizer, x veya y ekseninin ya da her ikisinin logaritmik ölçekte çizilip çizilmeyeceğini belirtmek için log argümanını eklersiniz. Bunu yapmak için log argümanına "x", "y" ve "xy" değerlerini geçebilirsiniz.

Her iki eksenin de logaritmik ölçekte olduğu bir örnek:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJuIDwtIDFcblxuIyBUaGUgZGF0YVxueCA8LSBzZXEoMCwgMjAsIDEpXG55IDwtIGV4cCh4KS8oeClcblxuIyBTZXQgZ3JhcGhpY2FsIHBhcmFtZXRlcnMgYHhsb2dgIGFuZCBgeGF4cGBcbnBhcih4bG9nPVRSVUUsIFxuICAgIHhheHA9IGMoMSwgNCwgMykpXG4jIFNldCBncmFwaGljYWwgcGFyYW1ldGVycyBgeWxvZ2AgYW5kIGB5YXhwYFxucGFyKHlsb2c9VFJVRSwgXG4gICAgeWF4cD0gYygxLCAxMSwgMikpIFxuXG4jIFBsb3QgdGhlIGRhdGEgXG5wbG90KHgsIFxuICAgICB5LCBcbiAgICAgbG9nPVwieHlcIikifQ==

Bir R Grafiğine Küçük Çentik İşaretleri Nasıl Eklenir

Hmisc paketindeki minor.tick() işleviyle grafiğinize küçük çentik işaretlerini hızlıca ekleyebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIEltcG9ydCBgSG1pc2NgIGxpYnJhcnlcbmxpYnJhcnkoSG1pc2MpXG5cbiMgTWFrZSBhIG5ldyBwbG90XG5wbG90Lm5ldygpXG5cbiMgU2V0IG1pbm9yIHRpY2sgbWFya1xubWlub3IudGljayhueCA9IDEuNSwgXG4gICAgICAgICAgIG55ID0gMiwgXG4gICAgICAgICAgIHRpY2sucmF0aW89MC43NSkifQ==
  • nx argümanı, eksendeki büyük çentik işaretleri arasındaki alanı kaç aralığa bölmek istediğinizi belirtmenize olanak tanır. Buna 1 değeri verirseniz küçük çentik işaretleri bastırılır;
  • ny, nx ile aynı şeyi yapmanızı sağlar ama y ekseni için;
  • tick.ratio, küçük çentik işaretlerinin uzunluklarının büyük çentik işaretlerine oranını belirtir. İkincisinin uzunluğu par(tck=x) ifadesinden alınır.

4. İki Farklı X veya Y Ekseni Nasıl Oluşturulur

İlk seçenek, ilk grafiği oluşturmak ve R'nin grafik aygıtını temizlemesini engellemek için par() işlevini new argümanı TRUE olacak şekilde çalıştırmaktır:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFNldCBhIHNlZWQgXG5zZXQuc2VlZCgxMDEpXG5cbiMgVGhlIGRhdGFcbnggPC0gMToxMFxueSA8LSBybm9ybSgxMClcbnogPC0gcnVuaWYoMTAsIG1pbj0xMDAwLCBtYXg9MTAwMDApXG5cbiMgUGxvdCB0aGUgZGF0YVxucGxvdCh4LCB5KSBcblxuIyBEb24ndCBjbGVhbiB0aGUgZnJhbWUgYmVmb3JlIGRyYXdpbmdcbnBhcihuZXcgPSBUUlVFKSJ9

Ardından, plot() ile ikinci grafiği oluşturursunuz. Verileri geçin ve ardından type, axes, bty, xlab ve ylab gibi bazı argümanları ayarladığınızdan emin olun:

  • type: çizgilerle çizim yaptığınızdan emin olmak için l geçebilirsiniz;
  • axes, eksenlerin çizilmemesi için FALSE olarak ayarlanır;
  • bty, grafiğin etrafındaki kutunun çizilmesini bastırır;
  • xlab boş bir dizeye ayarlanır; böylece x ekseninde etiket olmaz ve
  • ylab da boş bir dizeye ayarlanır; böylece y ekseninde de etiket olmaz.

Tümünü aşağıdaki DataCamp Light bölümünde inceleyin. Yukarıdaki kodların çalışma ortamınıza zaten yüklendiğini unutmayın. DataCamp Light kutusunun sağ tarafındaki R Konsolu'nu kullanarak iki kez kontrol edebilirsiniz:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6InNldC5zZWVkKDEwMSlcbnggPC0gMToxMFxueSA8LSBybm9ybSgxMClcbnogPC0gcnVuaWYoMTAsIG1pbj0xMDAwLCBtYXg9MTAwMDApXG5wbG90KHgsIHkpIFxucGFyKG5ldyA9IFRSVUUpIiwic2FtcGxlIjoicGxvdCh4LCBcbiAgICAgeiwgXG4gICAgIHR5cGUgPSBcImxcIiwgXG4gICAgIGF4ZXMgPSBGQUxTRSxcbiAgICAgYnR5ID0gXCJuXCIsIFxuICAgICB4bGFiID0gXCJcIiwgXG4gICAgIHlsYWIgPSBcIlwiKSJ9

Sonra, sırasıyla axis() ve mtext() ile bir eksen ekleme ve grafiğin kenar boşluklarına metin yazma zamanı.

axis() işlevine side argümanını ekleyip ona 4 değerini atayarak sağ tarafa yeni bir eksen ekleyebilirsiniz. Sonra, çentik işaretlerinin hangi noktalara çizileceğini belirtmek için at argümanını belirlersiniz. Bu durumda, z içindeki değerlerin aralığını kapsayan, eşit aralıklı n+1 “yuvarlak” değerin bir dizisini pretty() işleviyle hesaplarsınız. Bu, ikinci grafiğinizin, z adını verdiğiniz y eksenindeki sayılara gerçekten sahip olmanızı sağlar.

Tüm bunları aşağıda deneyin:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6InNldC5zZWVkKDEwMSlcbnggPC0gMToxMFxueSA8LSBybm9ybSgxMClcbnogPC0gcnVuaWYoMTAsIG1pbj0xMDAwLCBtYXg9MTAwMDApXG5wbG90KHgsIHkpIFxucGFyKG5ldyA9IFRSVUUpXG5wbG90KHgsIFxuICAgICB6LCBcbiAgICAgdHlwZSA9IFwibFwiLCAjUGxvdCB3aXRoIGxpbmVzXG4gICAgIGF4ZXMgPSBGQUxTRSwgI05vIGF4ZXNcbiAgICAgYnR5ID0gXCJuXCIsICNCb3ggYWJvdXQgcGxvdCBpcyBzdXBwcmVzc2VkXG4gICAgIHhsYWIgPSBcIlwiLCAgI05vIGxhYmVscyBvbiB4LWFuZCB5LWF4aXNcbiAgICAgeWxhYiA9IFwiXCIpIiwic2FtcGxlIjoiYXhpcyhzaWRlPTQsIFxuICAgICBhdCA9IHByZXR0eShyYW5nZSh6KSkpXG5tdGV4dChcInpcIiwgXG4gICAgICBzaWRlPTQsIFxuICAgICAgbGluZT0zKSJ9

Not edin ki side argümanı üç değerden birini alabilir: altta metin için 1, solda 2, üstte 3 ve sağda 4. line argümanı, metnin hangi kenar boşluğu satırından başladığını belirtir.

Kodunuzun nihai sonucu şöyle görünecektir:

set.seed(101)
x <- 1:10
y <- rnorm(10)
z <- runif(10, min=1000, max=10000)
plot(x, y) 
par(new = TRUE)
plot(x, 
     z, 
     type = "l", 
     axes = FALSE, 
     bty = "n", 
     xlab = "", 
     ylab = "")
axis(side=4, 
     at = pretty(range(z)))
mtext("z", 
      side=4, 
      line=3)

Ek bir alıştırma olarak, iki farklı x eksenine sahip bir R grafiği oluşturmayı deneyin! Bunu aşağıdaki DataCamp Light bölümünde yapın:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJwbG90Lm5ldygpXG5zZXQuc2VlZCgxMDEpXG54IDwtIDE6MTBcbnkgPC0gcm5vcm0oMTApXG56IDwtIHJ1bmlmKDEwLCBtaW49MTAwMCwgbWF4PTEwMDAwKSBcbnBhcihtYXIgPSBjKDUsIDQsIDQsIDQpICsgMC4zKVxucGxvdCh4LCB5KVxucGFyKG5ldyA9IFRSVUUpXG5wbG90KHosIHksIHR5cGUgPSBcImxcIiwgYXhlcyA9IEZBTFNFLCBidHkgPSBcIm5cIiwgeGxhYiA9IFwiXCIsIHlsYWIgPSBcIlwiKVxuYXhpcyhzaWRlPTMsIGF0ID0gcHJldHR5KHJhbmdlKHopKSlcbm10ZXh0KFwielwiLCBzaWRlPTMsIGxpbmU9MykifQ==

Temel plot(), axis() ve mtext() işlevleriyle tüm bunları manuel olarak yapabilmenize rağmen, bunların tümünü otomatikleştiren paketler de vardır: plotrix paketinin twoord.plot() işlevi ve latticeExtra paketinin doubleYScale() işlevi oldukça kullanışlıdır ve aynı işi yapmak istiyorsanız belki biraz daha hızlıdır:

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIEltcG9ydCBgbGF0dGljZUV4dHJhYFxubGlicmFyeShsYXR0aWNlRXh0cmEpXG5cbiMgVGhlIGRhdGFcbmNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbkFnZSA8LSBjaG9sJEFHRVxuQ2hvbCA8LSBjaG9sJENIT0xcblNtb2tlIDwtIGNob2wkU01PS0VcblN0YXRlIDwtIGNob2wkTU9SVFxuXG4jIENyZWF0ZSBhIGJpdmFyaWF0ZSBzY2F0dGVycGxvdCBgYWAgXG5hIDwtIHh5cGxvdChDaG9sIH4gQWdlfFN0YXRlKVxuXG4jIENyZWF0ZSBhIGJpdmFyaWF0ZSBzY2F0dGVycGxvdCBgYmAgXG5iIDwtIHh5cGxvdChTbW9rZSB+IEFnZXxTdGF0ZSlcblxuIyBEcmF3IHRoZSB0d28gcGxvdHMgd2l0aCBkaWZmZXJlbnQgeSBzY2FsZXMgXG5kb3VibGVZU2NhbGUoYSwgYiwgc3R5bGUxID0gMCwgc3R5bGUyID0gMywgYWRkLnlsYWIyID0gVFJVRSwgY29sdW1ucz0zKSJ9

Not edin ki yukarıdaki örnek bu veri setiyle yapılmıştır. Verilerin içe aktarılması veya read.table() işlevi hakkında herhangi bir şüpheniz varsa, DataCamp'in R'de veri içe aktarma hakkındaki dersine göz atın.

5. R Grafiğinin Gösterge (Lejant) Kutusu Nasıl Eklenir veya Değiştirilir

Temel R ile Bir R Grafiğinin Gösterge (Lejant) Kutusunu Ekleme ve Değiştirme

legend() işleviyle R grafiğinize kolayca bir lejant ekleyebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLHBpLDAuMSlcbnkxIDwtIGNvcyh4KVxueTIgPC0gc2luKHgpXG5cbiMgUGxvdCBcbnBsb3QoYygwLDMpLCBjKDAsMyksIHR5cGU9XCJuXCIsIHhsYWI9XCJ4XCIsIHlsYWI9XCJ5XCIpXG5cbiMgRHJhdyBsaW5lc1xubGluZXMoeCwgeTEsIGNvbD1cInJlZFwiLCBsd2Q9MilcbmxpbmVzKHgsIHkyLCBjb2w9XCJibHVlXCIsIGx3ZD0yKVxuXG4jIEFkZCBsZWdlbmQgdG8gcGxvdCBcbmxlZ2VuZChcInRvcHJpZ2h0XCIsIFxuICAgICAgIGluc2V0PS4wNSwgXG4gICAgICAgY2V4ID0gMSwgXG4gICAgICAgdGl0bGU9XCJMZWdlbmRcIiwgXG4gICAgICAgYyhcIkNvc2ludXNcIixcIlNpbnVzXCIpLCBcbiAgICAgICBob3Jpej1UUlVFLCBcbiAgICAgICBsdHk9YygxLDEpLCBcbiAgICAgICBsd2Q9YygyLDIpLCBcbiAgICAgICBjb2w9YyhcInJlZFwiLFwiYmx1ZVwiKSwgXG4gICAgICAgYmc9XCJncmV5OTZcIikifQ==

legend() belgesinde açıklanan pt.cex ve title.cex argümanlarının pek de işe yaramadığını unutmayın. Bazı geçici çözümler vardır:

  1. Lejantın başlığını veya etiketlerini legend()'a text.font argümanını ekleyerek farklı bir yazı tipinde verin:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLHBpLDAuMSlcbnkxIDwtIGNvcyh4KVxueTIgPC0gc2luKHgpXG5cbiMgUGxvdCBcbnBsb3QoYygwLDMpLCBjKDAsMyksIHR5cGU9XCJuXCIsIHhsYWI9XCJ4XCIsIHlsYWI9XCJ5XCIpXG5cbiMgRHJhdyBsaW5lc1xubGluZXMoeCwgeTEsIGNvbD1cInJlZFwiLCBsd2Q9MilcbmxpbmVzKHgsIHkyLCBjb2w9XCJibHVlXCIsIGx3ZD0yKVxuXG4jIEFkZCBsZWdlbmRcbmxlZ2VuZChcInRvcHJpZ2h0XCIsIFxuICAgICAgIGluc2V0PS4wNSwgXG4gICAgICAgY2V4ID0gMSwgXG4gICAgICAgdGl0bGU9XCJMZWdlbmRcIiwgXG4gICAgICAgYyhcIkNvc2ludXNcIixcIlNpbnVzXCIpLCBcbiAgICAgICBob3Jpej1UUlVFLCBcbiAgICAgICBsdHk9YygxLDEpLCBcbiAgICAgICBsd2Q9YygyLDIpLCBcbiAgICAgICBjb2w9YyhcInJlZFwiLFwiYmx1ZVwiKSwgXG4gICAgICAgYmc9XCJncmV5OTZcIixcbiAgICAgICB0ZXh0LmZvbnQ9MykifQ==
  1. Lejantı farklı cex argüman değerleriyle iki kez çizin
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFRoZSBkYXRhXG54IDwtIHNlcSgwLHBpLDAuMSlcbnkxIDwtIGNvcyh4KVxueTIgPC0gc2luKHgpXG5cbiMgUGxvdFxucGxvdChjKDAsMyksIGMoMCwzKSwgdHlwZT1cIm5cIiwgeGxhYj1cInhcIiwgeWxhYj1cInlcIilcblxuIyBEcmF3IGxpbmVzXG5saW5lcyh4LCB5MSwgY29sPVwicmVkXCIsIGx3ZD0yKVxubGluZXMoeCwgeTIsIGNvbD1cImJsdWVcIiwgbHdkPTIpXG5cbiMgQWRkIHN1YnRpdGxlcyBmb3IgbGVnZW5kXG5sZWdlbmQoXCJ0b3ByaWdodFwiLFxuICAgICAgIGluc2V0PS4wNSxcbiAgICAgICBjZXggPSAwLjc1LFxuICAgICAgIGMoXCJDb3NpbnVzXCIsXCJTaW51c1wiKSxcbiAgICAgICB0aXRsZT1cIlwiLFxuICAgICAgIGhvcml6PVRSVUUsXG4gICAgICAgbHR5PWMoMSwxKSwgXG4gICAgICAgbHdkPWMoMiwyKSwgXG4gICAgICAgY29sPWMoXCJyZWRcIixcImJsdWVcIikpXG5cbiMgQWRkIHRpdGxlIHRvIGxlZ2VuZCBcbmxlZ2VuZCgyLjA1LCAyLjk3LCBcbiAgICAgICBpbnNldD0uMDUsXG4gICAgICAgYyhcIlwiLFwiXCIpLFxuICAgICAgIHRpdGxlPVwiTGVnZW5kXCIsXG4gICAgICAgY2V4PTEuMTUsIFxuICAgICAgIGJ0eT1cIm5cIikifQ==

İpucu: R'de kullanabileceğiniz renkler hakkında daha fazla bilgi edinmek istiyorsanız, bu çok faydalı PDF belgesine göz atın.

ggplot2 İçinde Bir R Grafiğinin Lejantı ve Etiketleri Nasıl Eklenir ve Değiştirilir

Ggplot2 grafiğinize lejant eklemek oldukça kolaydır. Şunları doğrudan çalıştırabilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgUmVhZCBpbiB0aGUgZGF0YVxuY2hvbCA8LSByZWFkLnRhYmxlKHVybChcImh0dHA6Ly9hc3NldHMuZGF0YWNhbXAuY29tL2Jsb2dfYXNzZXRzL2Nob2wudHh0XCIpLCBcbiAgICAgICAgICAgICAgICAgICBoZWFkZXIgPSBUUlVFKVxuXG4jIFBsb3QgdGhlIGRhdGEgXG5nZ3Bsb3QoY2hvbCwgYWVzKHg9Y2hvbCRXRUlHSFQsIFxuICAgICAgICAgICAgICAgICB5PWNob2wkSEVJR0hUKSkgKyBcbiAgZ2VvbV9wb2ludChhZXMoY29sb3VyID0gZmFjdG9yKGNob2wkTU9SVCksIFxuICAgICAgICAgICAgICAgICBzaGFwZT1jaG9sJFNNT0tFKSkgKyBcbiAgeGxhYihcIldlaWdodFwiKSArIFxuICB5bGFiKFwiSGVpZ2h0XCIpICJ9

Ve bu size varsayılan bir lejant verir. Ancak çoğu durumda, lejantın görünümünü biraz daha ayarlamak isteyeceksiniz.

ggplot2'de lejant başlığını ve etiketlerini değiştirmenin iki yolu vardır:

  1. Ölçeğe farklı bir başlık ve etiketler kullanmasını söyleyin
colour veya shape gibi argümanları veya diğer estetikleri belirlediyseniz, adları ve etiketleri sırasıyla scale_color_discrete() ve scale_shape_discrete() işlevleriyle değiştirmeniz gerekir:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgUmVhZCBpbiBkYXRhXG5jaG9sIDwtIHJlYWQudGFibGUodXJsKFwiaHR0cDovL2Fzc2V0cy5kYXRhY2FtcC5jb20vYmxvZ19hc3NldHMvY2hvbC50eHRcIiksIFxuICAgICAgICAgICAgICAgICAgIGhlYWRlciA9IFRSVUUpXG5cbiMgUGxvdCB0aGUgZGF0YVxuZ2dwbG90KGNob2wsIGFlcyh4PWNob2wkV0VJR0hULCBcbiAgICAgICAgICAgICAgICAgeT1jaG9sJEhFSUdIVCkpICsgXG4gIGdlb21fcG9pbnQoYWVzKGNvbG91ciA9IGZhY3RvcihjaG9sJE1PUlQpLCBcbiAgICAgICAgICAgICAgICAgc2hhcGUgPSBjaG9sJFNNT0tFKSkgKyBcbiAgeGxhYihcIldlaWdodFwiKSArIFxuICB5bGFiKFwiSGVpZ2h0XCIpICsgXG4gIHRoZW1lKGxlZ2VuZC5wb3NpdGlvbj1jKDEsMC41KSxcbiAgICAgICAgbGVnZW5kLmp1c3RpZmljYXRpb249YygxLDEpKSArIFxuICBzY2FsZV9jb2xvcl9kaXNjcmV0ZShuYW1lID1cIkNvbmRpdGlvblwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzPWMoXCJBbGl2ZVwiLCBcIkRlYWRcIikpICtcbiAgc2NhbGVfc2hhcGVfZGlzY3JldGUobmFtZT1cIlNtb2tlclwiLCBcbiAgICAgICAgICAgICAgICAgICAgICAgbGFiZWxzPWMoXCJOb24tc21va2VyXCIsIFwiU2lnYXJlXCIsIFwiUGlwZVwiICkpIn0=

Grafik, DataCamp Light bölümünün Plot sekmesinde biraz sıkışık görünebilir; ancak bu kodu RStudio'da çalıştırırsanız bir sorun olmaz.

geom_point() işlevine ve labels argümanlarına shape argümanını eklerseniz iki lejant oluşturabileceğinizi unutmayın!

Lejantı grafiğin altına taşımak isterseniz legend.position değerini "bottom" olarak belirtebilirsiniz. Öte yandan, legend.justification argümanı, lejantı grafiğin içine konumlandırmanıza olanak tanır.

İpucu: ggplot'a farklı adlar ve etiketler kullanması gerektiğini bildirmek için kullanılabilecek her türlü ölçeği buradan inceleyin.

  1. Veri çerçevesini faktör istenen biçime sahip olacak şekilde değiştirin
Örneğin:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIFJlYWQgaW4gZGF0YVxuY2hvbCA8LSByZWFkLnRhYmxlKHVybChcImh0dHA6Ly9hc3NldHMuZGF0YWNhbXAuY29tL2Jsb2dfYXNzZXRzL2Nob2wudHh0XCIpLCBoZWFkZXIgPSBUUlVFKVxuXG4jIE1hbmlwdWxhdGUgdGhlIGRhdGFcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuXG4jIEluc3BlY3QgcmVzdWx0IFxuaGVhZChjaG9sKSJ9

Ardından, adları ve etiketleri çizim kodunuzda fazladan satırlarla değiştirme “zahmetinden” kaçınarak, ggplot2'de grafiğinizi oluşturmak için yeni faktör adlarını kullanabilirsiniz.

İpucu: ggplot2 için eksiksiz bir kopya kağıdı (cheat sheet) için buraya gidebilirsiniz.

6. R Grafiğinize Izgara Nasıl Çizilir

Temel R ile R Grafiğinize Izgara Çizmek

Bazı amaçlar için grafiğinize bir ızgara eklemeniz gerekebilir. grid() işlevini kullanarak grafiğinize kolayca bir ızgara ekleyebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gYygxLDIsMyw0LDUpXG55IDwtIDIqeFxuXG4jIFBsb3RcbnBsb3QoeCx5KVxuXG4jIEdyaWRcbmdyaWQoMTAsMTApIn0=

ggplot2 ile Bir R Grafiğinde Izgara Çizmek

Aşağıdaki kod bloğu, ggplot2 paketiyle grafiğinizde bir ızgara olduğundan nasıl emin olabileceğinizi gösterir. chol verisinin önceden yüklendiğini ve yukarıdaki veri işleme adımlarının uygulandığını unutmayın.

Verinin nasıl göründüğünden emin değilseniz, DataCamp Light bloğunun R Konsolu'nda veri çerçevesinin ilk satırlarını yazdırın:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIiIsInNhbXBsZSI6IiMgTG9hZCBpbiBgZ2dwbG90MmBcbmxpYnJhcnkoZ2dwbG90MilcblxuIyBQbG90IGRhdGEgXG5nZ3Bsb3QoY2hvbCwgYWVzKHg9Y2hvbCRXRUlHSFQsIHk9Y2hvbCRIRUlHSFQpKSArIFxuICBnZW9tX3BvaW50KGFlcyhjb2xvdXIgPSBmYWN0b3IoY2hvbCRNT1JUKSwgc2hhcGUgPSBjaG9sJFNNT0tFKSkgKyBcbiAgeGxhYihcIldlaWdodFwiKSArIFxuICB5bGFiKFwiSGVpZ2h0XCIpICsgXG4gIHRoZW1lKHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gXCJncmV5NDBcIiksXG4gICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gXCJncmV5NDBcIikpIn0=

İpucu: küçük ızgara çizgilerini istemiyorsanız, element_blank() öğesini panel.grid.minor'a geçirin.

Arka planı bir renkle doldurmak isterseniz, kodunuza panel.background = element_rect(fill = "navy") ekleyin. Bunun nasıl yapıldığını aşağıdaki DataCamp Light bloğunda görebilirsiniz. chol verisi tıpkı önceki gibi yüklenmiş ve hafifçe işlenmiştir. Kendiniz deneyin!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIiIsInNhbXBsZSI6ImxpYnJhcnkoZ2dwbG90MilcbmdncGxvdChjaG9sLCBhZXMoeD1jaG9sJFdFSUdIVCwgeT1jaG9sJEhFSUdIVCkpICsgXG4gIGdlb21fcG9pbnQoYWVzKGNvbG91ciA9IGZhY3RvcihjaG9sJE1PUlQpLCBzaGFwZSA9IGNob2wkU01PS0VSKSkgKyBcbiAgeGxhYihcIldlaWdodFwiKSArIFxuICB5bGFiKFwiSGVpZ2h0XCIpICsgXG4gIHNjYWxlX2NvbG9yX2Rpc2NyZXRlKG5hbWUgPVwiQ29uZGl0aW9uXCIsIGxhYmVscz1jKFwiQWxpdmVcIiwgXCJEZWFkXCIpKSArXG4gIHNjYWxlX3NoYXBlX2Rpc2NyZXRlKG5hbWU9XCJTbW9rZXJcIiwgbGFiZWxzPWMoXCJOb24tc21va2VyXCIsIFwiU2lnYXJlXCIsIFwiUGlwZVwiICkpICtcbiAgdGhlbWUobGVnZW5kLnBvc2l0aW9uPWMoMSwwLjUpLFxuICAgICAgICBsZWdlbmQuanVzdGlmaWNhdGlvbj1jKDEsMSksXG4gICAgICAgIHBhbmVsLmdyaWQubWFqb3IgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gXCJncmV5NDBcIiksXG4gICAgICAgIHBhbmVsLmdyaWQubWlub3IgPSBlbGVtZW50X2xpbmUoY29sb3VyID0gXCJncmV5NDBcIiksXG4gICAgICAgIHBhbmVsLmJhY2tncm91bmQgPSBlbGVtZW50X3JlY3QoZmlsbCA9IFwibmF2eVwiKVxuICAgICAgICApIn0=

7. Arka Planı PNG Olan Bir Grafik Nasıl Çizilir

png paketinin yardımıyla arka planı .png olan bir grafiği hızla çizebilirsiniz. Gerekirse paketi kurun, çalışma alanınızda library() işleviyle etkinleştirin ve grafik çizmeye başlayabilirsiniz!

Önce, görseli yüklemek isteyeceksiniz. Resmin yolunu belirtmek için readPNG() işlevini kullanın!

ipucu: çalışma dizininizin neresi olduğunu kontrol edebilir ve aşağıdaki komutları çalıştırarak bunu değiştirebilirsiniz.

Resminiz çalışma dizininize kaydedildiyse, tüm yolu vermek yerine doğrudan readPNG("picture.png") belirtebilirsiniz.

Sonraki adımda, grafik alanını ayarlamak ve rasterImage() içindeki grafiksel parametreleri ayarlamak için par() işlevini çağırmak istersiniz. Çizim bölgesinin kullanıcı koordinatlarının uç değerlerini tanımlamak için usr argümanını kullanırsınız. Bu durumda, 1, 3, 2 ve 4 değerlerini verirsiniz.

Ardından bir ızgara çizer ve birkaç çizgi eklersiniz:

install.packages("png")
library(png)
image <- readPNG("<path to your picture>")

getwd()
setwd("<path to a folder>")

plot(1:2, type='n', main="Plotting Over an Image", xlab="x", ylab="y")

lim <- par()

rasterImage(image, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])

grid()
lines(c(1, 1.2, 1.4, 1.6, 1.8, 2.0), c(1, 1.3, 1.7, 1.6, 1.7, 1.0), type="b", lwd=5, col="red")

DataCamp logosunu kullanırsanız aşağıdaki sonucu elde edebilirsiniz:

library(png)
image <- readPNG("datacamp.png")
plot(1:2, type="n", main="Plotting Over an Image", xlab="x", ylab="y", asp=1)
lim <- par()
rasterImage(image, lim$usr[1], lim$usr[3], lim$usr[2], lim$usr[4])
lines(c(1, 1.2, 1.4, 1.6, 1.8, 2.0), c(1.5, 1.3, 1.7, 1.6, 1.7, 1.0), type="b", lwd=5, col="red")

DataCamp logosu üzerinde çizim

readPNG() girdisi olarak bir .png dosyası vermeniz gerektiğini ve isterseniz aynı prosedürü jpg görsellerle çalışmak için de izleyebileceğinizi unutmayın. Elbette bu durumda jpeg kütüphanesini yüklemeniz gerekir!

eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERvd25sb2FkIGFuIGltYWdlXG5kb3dubG9hZC5maWxlKFwiaHR0cHM6Ly9ob2x0enlhbi5maWxlcy53b3JkcHJlc3MuY29tLzIwMTUvMTAvY3JvcHBlZC1wMTA5MDUxOC5qcGdcIiAsIGRlc3RmaWxlPVwibXlfaW1hZ2UuanBnXCIpXG5cbiMgTG9hZCBganBlZ2AgXG5saWJyYXJ5KGpwZWcpXG5cbiMgUmVhZCBpbiB0aGUganBnIGZpbGUgXG5teV9pbWFnZT1yZWFkSlBFRyhcIm15X2ltYWdlLmpwZ1wiKVxuXG4jIFNldCB1cCBhIHBsb3QgYXJlYSB3aXRoIG5vIHBsb3RcbnBsb3QoMToyLCB0eXBlPSduJywgbWFpbj1cIlwiLCB4bGFiPVwieFwiLCB5bGFiPVwieVwiKVxuXG4jIEdldCB0aGUgcGxvdCBpbmZvcm1hdGlvblxubGltIDwtIHBhcigpXG5yYXN0ZXJJbWFnZShteV9pbWFnZSwgbGltJHVzclsxXSwgbGltJHVzclszXSwgbGltJHVzclsyXSwgbGltJHVzcls0XSlcbmdyaWQoKVxuXG4jQWRkIHlvdXIgcGxvdFxubGluZXMoYygxLCAxLjIsIDEuNCwgMS42LCAxLjgsIDIuMCksIGMoMSwgMS4zLCAxLjcsIDEuNiwgMS43LCAxLjApLCB0eXBlPVwiYlwiLCBsd2Q9NSwgY29sPVwid2hpdGVcIikifQ==

Bu örnekte grafikte kullanmak üzere önce webden bir görsel indirdiğinizi, ancak dilerseniz bir görseli yerel olarak kaydedip readJPEG() işlevine dosya yolunu vererek çizim sırasında kullanabileceğinizi de unutmayın.

Ayrıca, bu örneğin, kodu ve çıktıları tek bir yerde bulabileceğiniz, R veri görselleştirmesi için bolca ilham sunan R Graph Gallery'den alındığını da not edin! İlham arıyorsanız ya da grafikleriniz için gereken kodu hızla bulmanın bir yoluna ihtiyaç duyuyorsanız idealdir!

8. R Grafiğinde Noktaların Boyutu Nasıl Ayarlanır

Temel R ile R Grafiğinde Noktaların Boyutunu Ayarlamak

Temel R ile noktaların boyutunu ayarlamak için basitçe cex argümanını kullanabilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJ4IDwtIGMoMSwyLDMsNCw1KVxueSA8LSBjKDYsNyw4LDksMTApXG5cbnBsb3QoeCx5LGNleD0yLGNvbD1cInJlZFwiKSJ9
Unutmayın, bununla birlikte R, symbols() işlevi aracılığıyla simgeleriniz üzerinde çok daha fazla denetim sağlar:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJkZiA8LSBkYXRhLmZyYW1lKHgxPTE6MTAsIFxuICAgICAgICAgICAgICAgICB4Mj1zYW1wbGUoMTA6OTksIDEwKSwgXG4gICAgICAgICAgICAgICAgIHgzPTEwOjEpXG5zeW1ib2xzKHg9ZGYkeDEsIFxuICAgICAgICB5PWRmJHgyLCBcbiAgICAgICAgY2lyY2xlcz1kZiR4MywgXG4gICAgICAgIGluY2hlcz0xLzMsIFxuICAgICAgICBhbm49RiwgXG4gICAgICAgIGJnPVwic3RlZWxibHVlMlwiLCBcbiAgICAgICAgZmc9TlVMTCkifQ==

Bu grafikteki daireler yarıçap olarak df$x3 değerlerini alır; inches argümanı ise simgelerin boyutunu denetler. Bu argüman pozitif bir sayı olarak girildiğinde, simgeler, en büyük boyut bu inç cinsinden değere eşit olacak şekilde ölçeklendirilir.

ggplot2 ile R Grafiğinizde Noktaların Boyutunu Ayarlamak

Bu durumda, saçılım grafiğinizdeki noktaların boyutunu ayarlamak isteyeceksiniz. Bunu size argümanıyla yapabilirsiniz. chol verisinin sizin için yüklendiğini unutmayın:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgXG4gICAgICAgICAgICAgICAgICAgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIiIsInNhbXBsZSI6ImxpYnJhcnkoZ2dwbG90MilcblxuZ2dwbG90KGNob2wsIFxuICAgICAgIGFlcyh4PWNob2wkV0VJR0hULCB5PWNob2wkSEVJR0hUKSwgXG4gICAgICAgc2l6ZSA9IDIpICsgXG4gIGdlb21fcG9pbnQoKSJ9

size argümanını geom_point() işlevine de geçebileceğinizi unutmayın:

ggplot(chol, 
       aes(x=chol$WEIGHT, y=chol$HEIGHT)) + 
  geom_point(size = 2)

Aynı sonucu elde edeceksiniz, ancak sözüme güvenmeyin! DataCamp Light bloğundaki son kod parçasını bu parça ile değiştirmeyi deneyin.

9. R Verinize Düzgün Bir Eğri Nasıl Uydurulur

loess() işlevi muhtemelen bu tür bir soru için her R programcısının favori çözümüdür. Aslında “yerel uyum kullanarak bir veya daha fazla sayısal yordayıcı tarafından belirlenen polinom bir yüzey uydurur”.

Kısacası, veriniz vardır ve loess() işlevini kullanarak y ile x arasında ilişki kurarsınız. Bununla, sayısal yanıtı ve bir ile dört arasında sayısal yordayıcıyı belirtmiş olursunuz.

Sonra x ve y'yi çizer ve orijinal grafikte, lo değerlerini öngördüğünüz yerlere çizgiler eklersiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJ4IDwtIDE6MTBcbnkgPC0gYygyLDQsNiw4LDcsMTIsMTQsMTYsMTgsMjApXG5cbiNFc3RpbWF0aW9ucyBiZXR3ZWVuIGRhdGFcbmxvIDwtIGxvZXNzKHl+eClcblxucGxvdCh4LHkpXG5cbmxpbmVzKHByZWRpY3QobG8pKSJ9

10. R Grafiğinde Hata Çubukları Nasıl Eklenir

Temel R ile Hata Çubukları Çizmek

Kötü haber: R doğrudan hata çubukları çizemiyor. İyi haber: Ek paketler yüklemeye gerek kalmadan yine de hata çubuklarını çizebilirsiniz!

Önce, veri çerçevenizin bazı özet istatistiklerini hesaplamak için aşağıdaki işlevi tanımlamanız gerekecek:

summarySE <- function(data=NULL, measurevar, groupvars=NULL, na.rm=FALSE,
                      conf.interval=.95, .drop=TRUE) {
    library(plyr)

    # New version of length which can handle NA's: if na.rm==T, don't count them
    length2 <- function (x, na.rm=FALSE) {
        if (na.rm) sum(!is.na(x))
        else       length(x)
    }

    # This does the summary. For each group's data frame, return a vector with
    # N, mean, and sd
    datac <- ddply(data, groupvars, .drop=.drop,
      .fun = function(xx, col) {
        c(N    = length2(xx[[col]], na.rm=na.rm),
          mean = mean   (xx[[col]], na.rm=na.rm),
          sd   = sd     (xx[[col]], na.rm=na.rm)
        )
      },
      measurevar
    )

    # Rename the "mean" column    
    datac <- rename(datac, c("mean" = measurevar))

    datac$se <- datac$sd / sqrt(datac$N)  # Calculate standard error of the mean

    # Confidence interval multiplier for standard error
    # Calculate t-statistic for confidence interval: 
    # e.g., if conf.interval is .95, use .975 (above/below), and use df=N-1
    ciMult <- qt(conf.interval/2 + .5, datac$N-1)
    datac$ci <- datac$se * ciMult

    return(datac)
}

İşlev tanımının bu kaynaktan alındığını ve ayrıca Rmisc kütüphanesi aracılığıyla da kullanılabildiğini unutmayın.

Sonra, bununla sizin için önceden yüklenmiş olan chol verisinin bazı istatistiklerini hesaplayabilirsiniz. Ardından, elde edilen bu sayıları kullanarak grafiğinizi oluşturabilirsiniz.

Bu alıştırmaya başlamadan önce veriyi incelemeyi unutmayın!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgXG4gICAgICAgICAgICAgICAgICAgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndGggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgbWVhbiA9IG1lYW4gICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgc2QgICA9IHNkICAgICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG1lYXN1cmV2YXJcbiAgICApXG5cbiAgICAjIFJlbmFtZSB0aGUgXCJtZWFuXCIgY29sdW1uICAgIFxuICAgIGRhdGFjIDwtIHJlbmFtZShkYXRhYywgYyhcIm1lYW5cIiA9IG1lYXN1cmV2YXIpKVxuXG4gICAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAjIENhbGN1bGF0ZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgbWVhblxuXG4gICAgIyBDb25maWRlbmNlIGludGVydmFsIG11bHRpcGxpZXIgZm9yIHN0YW5kYXJkIGVycm9yXG4gICAgIyBDYWxjdWxhdGUgdC1zdGF0aXN0aWMgZm9yIGNvbmZpZGVuY2UgaW50ZXJ2YWw6IFxuICAgICMgZS5nLiwgaWYgY29uZi5pbnRlcnZhbCBpcyAuOTUsIHVzZSAuOTc1IChhYm92ZS9iZWxvdyksIGFuZCB1c2UgZGY9Ti0xXG4gICAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpXG4gICAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHRcblxuICAgIHJldHVybihkYXRhYylcbn0iLCJzYW1wbGUiOiIjQ2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBmb3IgdGhlIGBjaG9sYCBkYXRhc2V0XG5jaG9sYyA8LSBzdW1tYXJ5U0UoY2hvbCwgXG4gICAgICAgICAgICAgICAgICAgbWVhc3VyZXZhcj1cIkNIT0xcIiwgXG4gICAgICAgICAgICAgICAgICAgZ3JvdXB2YXJzPWMoXCJNT1JUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTTU9LRVJcIikpXG4jUGxvdCB0aGUgZGF0YVxucGxvdChjaG9sYyROLCBcbiAgICAgY2hvbGMkQ0hPTCxcbiAgICAgeWxpbT1yYW5nZShjKGNob2xjJENIT0wtY2hvbGMkc2QsIFxuICAgICAgICAgICAgICAgICAgY2hvbGMkQ0hPTCtjaG9sYyRzZCkpLFxuICAgICBwY2g9MTksIFxuICAgICB4bGFiPVwiQ2hvbGVzdGVyb2wgTWVhc3VyZW1lbnRzXCIsIFxuICAgICB5bGFiPVwiQ2hvbGVzdGVyb2wgTWVhbiArLy0gU0RcIixcbiAgICAgbWFpbj1cIlNjYXR0ZXJwbG90IFdpdGggc2QgRXJyb3IgQmFyc1wiXG4pXG5cbiNEcmF3IGFycm93cyBvZiBhIFwic3BlY2lhbFwiIHR5cGVcbmFycm93cyhjaG9sYyROLCBcbiAgICAgICBjaG9sYyRDSE9MLWNob2xjJHNkLCBcbiAgICAgICBjaG9sYyROLCBcbiAgICAgICBjaG9sYyRDSE9MK2Nob2xjJHNkLCBcbiAgICAgICBsZW5ndGg9MC4wNSwgXG4gICAgICAgYW5nbGU9OTAsIFxuICAgICAgIGNvZGU9MykifQ==

arrows() işlevinin alabileceği tüm argümanları okumak isterseniz, buraya gidin.

ggplot2 ile Hata Çubukları Çizmek

Ortalamanın Standart Hatasını Temsil Eden Hata Çubukları

Önce verinizi summarySE() işleviyle (ya da yukarıda tanımlanan işleve benzer bir işleve) Rmisc paketinden özetleyin. Ardından, ortaya çıkan veri çerçevesini kullanarak bazı değişkenleri, örneğin ortalamanın standart hatasıyla birlikte hata çubukları çizerek görselleştirebilirsiniz.

Kolaylık olması için veri ile işlev sizin için yüklendi:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgXG4gICAgICAgICAgICAgICAgICAgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndWggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG]
If you want to change the position of the error bars, for example, when they overlap, you might consider using the position_dodge() function:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndWggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgbWVhbiA9IG1lYW4gICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgc2QgICA9IHNkICAgICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG1lYXN1cmV2YXJcbiAgICApXG5cbiAgICAjIFJlbmFtZSB0aGUgXCJtZWFuXCIgY29sdW1uICAgIFxuICAgIGRhdGFjIDwtIHJlbmFtZShkYXRhYywgYyhcIm1lYW5cIiA9IG1lYXN1cmV2YXIpKVxuXG4gICAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAjIENhbGN1bGF0ZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgbWVhblxuXG4gICAgIyBDb25maWRlbmNlIGludGVydmFsIG11bHRpcGxpZXIgZm9yIHN0YW5kYXJkIGVycm9yXG4gICAgIyBDYWxjdWxhdGUgdC1zdGF0aXN0aWMgZm9yIGNvbmZpZGVuY2UgaW50ZXJ2YWw6IFxuICAgICMgZS5nLiwgaWYgY29uZi5pbnRlcnZhbCBpcyAuOTUsIHVzZSAuOTc1IChhYm92ZS9iZWxvdyksIGFuZCB1c2UgZGY9Ti0xXG4gICAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpXG4gICAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHRcblxuICAgIHJldHVybihkYXRhYylcbn0iLCJzYW1wbGUiOiIjQ2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBmb3IgdGhlIGNob2wgZGF0YXNldFxuY2hvbGMgPC0gc3VtbWFyeVNFKGNob2wsIFxuICAgICAgICAgICAgICAgICAgIG1lYXN1cmV2YXI9XCJDSE9MXCIsIFxuICAgICAgICAgICAgICAgICAgIGdyb3VwdmFycz1jKFwiTU9SVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU01PS0VSXCIpKVxuXG4jUGxvdCB0aGUgY2hvbGMgZGF0YXNldFxubGlicmFyeShnZ3Bsb3QyKVxucGQgPC0gcG9zaXRpb25fZG9kZ2UoMC4xKVxuZ2dwbG90KGNob2xjLCBhZXMoeD1TTU9LRVIsIFxuICAgICAgICAgICAgICAgICAgeT1DSE9MLCBcbiAgICAgICAgICAgICAgICAgIGNvbG91cj1NT1JUKSkgKyBcbiAgICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPUNIT0wtc2UsXG4gICAgICAgICAgICAgICAgICAgICAgeW1heD1DSE9MK3NlLCBcbiAgICAgICAgICAgICAgICAgICAgICBncm91cD1NT1JUKSwgXG4gICAgICAgICAgICAgICAgICB3aWR0aD0uMSwgXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbj1wZCkgK1xuICAgIGdlb21fbGluZShhZXMoZ3JvdXA9TU9SVCkpICtcbiAgICBnZW9tX3BvaW50KCkifQ==

İpucu: “geom_path: Each group consist of only one observation. Do you need to adjust the group aesthetic?” gibi bir hata alırsanız, genellikle group estetiğini ayarlamanız gerekir.

Güven Aralıklarını Temsil Eden Hata Çubukları

Rmisc kütüphanesinin summarySE() işleviyle veya önceki bölümde tanımladığınız işleve göre verinizin özetinden devam ederek, güven aralıklarını temsil eden hata çubukları da çizebilirsiniz. Bu örnekte, %95 güven aralığına sahip hata çubukları çizilir.

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndWggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgbWVhbiA9IG1lYW4gICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgc2QgICA9IHNkICAgICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG1lYXN1cmV2YXJcbiAgICApXG5cbiAgICAjIFJlbmFtZSB0aGUgXCJtZWFuXCIgY29sdW1uICAgIFxuICAgIGRhdGFjIDwtIHJlbmFtZShkYXRhYywgYyhcIm1lYW5cIiA9IG1lYXN1cmV2YXIpKVxuXG4gICAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAjIENhbGN1bGF0ZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgbWVhblxuXG4gICAgIyBDb25maWRlbmNlIGludGVydmFsIG11bHRpcGxpZXIgZm9yIHN0YW5kYXJkIGVycm9yXG4gICAgIyBDYWxjdWxhdGUgdC1zdGF0aXN0aWMgZm9yIGNvbmZpZGVuY2UgaW50ZXJ2YWw6IFxuICAgICMgZS5nLiwgaWYgY29uZi5pbnRlcnZhbCBpcyAuOTUsIHVzZSAuOTc1IChhYm92ZS9iZWxvdyksIGFuZCB1c2UgZGY9Ti0xXG4gICAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpXG4gICAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHRcblxuICAgIHJldHVybihkYXRhYylcbn0iLCJzYW1wbGUiOiIjQ2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBmb3IgdGhlIGNob2wgZGF0YXNldFxuY2hvbGMgPC0gc3VtbWFyeVNFKGNob2wsIFxuICAgICAgICAgICAgICAgICAgIG1lYXN1cmV2YXI9XCJDSE9MXCIsIFxuICAgICAgICAgICAgICAgICAgIGdyb3VwdmFycz1jKFwiTU9SVFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiU01PS0VSXCIpKVxuXG4jUGxvdCB0aGUgY2hvbGMgZGF0YXNldFxubGlicmFyeShnZ3Bsb3QyKVxucGQgPC0gcG9zaXRpb25fZG9kZ2UoMC4xKVxuZ2dwbG90KGNob2xjLCBhZXMoeD1TTU9LRVIsIFxuICAgICAgICAgICAgICAgICAgeT1DSE9MLFxuICAgICAgICAgICAgICAgICAgY29sb3VyPU1PUlQpKSArIFxuICAgIGdlb21fZXJyb3JiYXIoYWVzKHltaW49Q0hPTC1jaSwgXG4gICAgICAgICAgICAgICAgICAgICAgeW1heD1DSE9MK2NpLCBcbiAgICAgICAgICAgICAgICAgICAgICBncm91cD1NT1JUKSwgXG4gICAgICAgICAgICAgICAgICB3aWR0aD0uMSwgXG4gICAgICAgICAgICAgICAgICBjb2xvdXI9XCJibGFja1wiLFxuICAgICAgICAgICAgICAgICAgcG9zaXRpb249cGQpICtcbiAgICBnZW9tX2xpbmUoYWVzKGdyb3VwPU1PUlQpKSArXG4gICAgZ2VvbV9wb2ludCgpIn0=

Hata çubuklarının renginin şimdi colour argümanıyla siyah olarak ayarlandığına dikkat edin.

Standart Sapmayı Temsil Eden Hata Çubukları

Son olarak, summarySE() işlevinin Rmisc paketindeki sonucunu veya son bölümlerden birinden kopyaladığınız işlev tanımını kullanarak standart sapmayı temsil eden hata çubuklarını da çizebilirsiniz.

Özellikle, geom_errorbar() işlevine verdiğiniz ymin ve ymax argümanlarını ayarlamanız yeterlidir:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndWggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgbWVhbiA9IG1lYW4gICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgc2QgICA9IHNkICAgICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG1lYXN1cmV2YXJcbiAgICApXG5cbiAgICAjIFJlbmFtZSB0aGUgXCJtZWFuXCIgY29sdW1uICAgIFxuICAgIGRhdGFjIDwtIHJlbmFtZShkYXRhYywgYyhcIm1lYW5cIiA9IG1lYXN1cmV2YXIpKVxuXG4gICAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAjIENhbGN1bGF0ZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgbWVhblxuXG4gICAgIyBDb25maWRlbmNlIGludGVydmFsIG11bHRpcGxpZXIgZm9yIHN0YW5kYXJkIGVycm9yXG4gICAgIyBDYWxjdWxhdGUgdC1zdGF0aXN0aWMgZm9yIGNvbmZpZGVuY2UgaW50ZXJ2YWw6IFxuICAgICMgZS5nLiwgaWYgY29uZi5pbnRlcnZhbCBpcyAuOTUsIHVzZSAuOTc1IChhYm92ZS9iZWxvdyksIGFuZCB1c2UgZGY9Ti0xXG4gICAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpXG4gICAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHRcblxuICAgIHJldHVybihkYXRhYylcbn0iLCJzYW1wbGUiOiIjQ2FsY3VsYXRlIHNvbWUgc3RhdGlzdGljcyBmb3IgdGhlIGNob2wgZGF0YXNldFxuY2hvbGMgPC0gc3VtbWFyeVNFKGNob2wsIFxuICAgICAgICAgICAgICAgICAgIG1lYXN1cmV2YXI9XCJDSE9MXCIsIFxuICAgICAgICAgICAgICAgICAgIGdyb3VwdmFycz1jKFwiTU9SVFwiLFwiU01PS0VSXCIpKVxuXG4jUGxvdCB0aGUgY2hvbGMgZGF0YXNldFxubGlicmFyeShnZ3Bsb3QyKVxucGQgPC0gcG9zaXRpb25fZG9kZ2UoMC4xKVxuZ2dwbG90KGNob2xjLCBhZXMoeD1TTU9LRVIsIFxuICAgICAgICAgICAgICAgICAgeT1DSE9MLCBcbiAgICAgICAgICAgICAgICAgIGNvbG91cj1NT1JUKSkgKyBcbiAgICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPUNIT0wtc2QsIFxuICAgICAgICAgICAgICAgICAgICAgIHltYXg9Q0hPTCtzZCwgXG4gICAgICAgICAgICAgICAgICAgICAgZ3JvdXA9TU9SVCksIFxuICAgICAgICAgICAgICAgICAgd2lkdGg9LjEsXG4gICAgICAgICAgICAgICAgICBwb3NpdGlvbj1wZCkgK1xuICAgIGdlb21fbGluZShhZXMoZ3JvdXA9TU9SVCkpICtcbiAgICBnZW9tX3BvaW50KCkifQ==

Büyük ipucu*: ortalamaları ve hata çubuklarını nasıl çizeceğinize dair daha ayrıntılı örnekler için buraya da bakın.

11. Bir Grafiği Diske Görsel Olarak Nasıl Kaydedersiniz

dev.copy() işlevini, mevcut grafik aygıtında oluşturduğunuz grafiği sizin belirttiğiniz bir aygıta veya klasöre kopyalamak için kullanabilirsiniz.

x <- seq(0,2*pi,0.1)
y <- sin(x)
plot(x,y)
dev.copy(jpeg,
         filename="<path to your file/name.jpg>");
dev.off();
(x)
(y)

12. İki R Grafiğini Yan Yana Nasıl Çizersiniz

Temel R Kullanarak İki Grafiği Yan Yana Çizin

Bunu temel R komutlarıyla yapabilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbmQwIDwtIG1hdHJpeChybm9ybSgxNSksIG5jb2w9MylcbmQxIDwtIG1hdHJpeChybm9ybSgxNSksIG5jb2w9MylcblxuIyBTZXQgbGltaXRzIFxubGltaXRzIDwtIHJhbmdlKGQwLGQxKVxuXG4jIFNldCBncmFwaGljYWwgcGFyYW1ldGVyIGBtZnJvd2BcbnBhcihtZnJvdyA9IGMoMSwgMikpIFxuXG4jIE1ha2UgMiBib3hwbG90c1xuYm94cGxvdChkMCxcbiAgICAgICAgeWxpbT1saW1pdHMpXG5ib3hwbG90KGQxLFxuICAgICAgICB5bGltPWxpbWl0cykifQ==

par() işlevine mfrow argümanını ekleyerek 1 ve 2’den oluşan bir vektör belirtmiş olursunuz: bu durumda tüm şekiller, aygıtta satırlara göre 1x2’lik bir dizide çizilir (mfrow).

Başka bir deyişle, yukarıdaki kutu grafikleri tek bir satırda iki sütun içinde basılacaktır.

ggplot2 Kullanarak İki Grafiği Yan Yana Çizin

Grafikleri yan yana yerleştirip sınırları belirtmek istemiyorsanız, grafiklerinizi yan yana çizdirmek için ggplot2 paketini kullanmayı düşünebilirsiniz.

Veriniz chol ve summarySE() işlevi yüklenmiştir. Nasıl göründüklerinden emin değilseniz R Konsolu’nda inceleyin:

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIlxuc3VtbWFyeVNFIDwtIGZ1bmN0aW9uKGRhdGE9TlVMTCwgbWVhc3VyZXZhciwgZ3JvdXB2YXJzPU5VTEwsIG5hLnJtPUZBTFNFLFxuICAgICAgICAgICAgICAgICAgICAgIGNvbmYuaW50ZXJ2YWw9Ljk1LCAuZHJvcD1UUlVFKSB7XG4gICAgbGlicmFyeShwbHlyKVxuXG4gICAgIyBOZXcgdmVyc2lvbiBvZiBsZW5ndGggd2hpY2ggY2FuIGhhbmRsZSBOQSdzOiBpZiBuYS5ybT09VCwgZG9uJ3QgY291bnQgdGhlbVxuICAgIGxlbmd0aDIgPC0gZnVuY3Rpb24gKHgsIG5hLnJtPUZBTFNFKSB7XG4gICAgICAgIGlmIChuYS5ybSkgc3VtKCFpcy5uYSh4KSlcbiAgICAgICAgZWxzZSAgICAgICBsZW5ndGgoeClcbiAgICB9XG5cbiAgICAjIFRoaXMgZG9lcyB0aGUgc3VtbWFyeS4gRm9yIGVhY2ggZ3JvdXAncyBkYXRhIGZyYW1lLCByZXR1cm4gYSB2ZWN0b3Igd2l0aFxuICAgICMgTiwgbWVhbiwgYW5kIHNkXG4gICAgZGF0YWMgPC0gZGRwbHkoZGF0YSwgZ3JvdXB2YXJzLCAuZHJvcD0uZHJvcCxcbiAgICAgIC5mdW4gPSBmdW5jdGlvbih4eCwgY29sKSB7XG4gICAgICAgIGMoTiAgICA9IGxlbmd0aDIoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgbWVhbiA9IG1lYW4gICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSksXG4gICAgICAgICAgc2QgICA9IHNkICAgICAoeHhbW2NvbF1dLCBuYS5ybT1uYS5ybSlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIG1lYXN1cmV2YXJcbiAgICApXG5cbiAgICAjIFJlbmFtZSB0aGUgXCJtZWFuXCIgY29sdW1uICAgIFxuICAgIGRhdGFjIDwtIHJlbmFtZShkYXRhYywgYyhcIm1lYW5cIiA9IG1lYXN1cmV2YXIpKVxuXG4gICAgZGF0YWMkc2UgPC0gZGF0YWMkc2QgLyBzcXJ0KGRhdGFjJE4pICAjIENhbGN1bGF0ZSBzdGFuZGFyZCBlcnJvciBvZiB0aGUgbWVhblxuXG4gICAgIyBDb25maWRlbmNlIGludGVydmFsIG11bHRpcGxpZXIgZm9yIHN0YW5kYXJkIGVycm9yXG4gICAgIyBDYWxjdWxhdGUgdC1zdGF0aXN0aWMgZm9yIGNvbmZpZGVuY2UgaW50ZXJ2YWw6IFxuICAgICMgZS5nLiwgaWYgY29uZi5pbnRlcnZhbCBpcyAuOTUsIHVzZSAuOTc1IChhYm92ZS9iZWxvdyksIGFuZCB1c2UgZGY9Ti0xXG4gICAgY2lNdWx0IDwtIHF0KGNvbmYuaW50ZXJ2YWwvMiArIC41LCBkYXRhYyROLTEpXG4gICAgZGF0YWMkY2kgPC0gZGF0YWMkc2UgKiBjaU11bHRcblxuICAgIHJldHVybihkYXRhYylcbn0iLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiNDYWxjdWxhdGUgc29tZSBzdGF0aXN0aWNzIGZvciB0aGUgY2hvbCBkYXRhc2V0XG5jaG9sYyA8LSBzdW1tYXJ5U0UoY2hvbCwgXG4gICAgICAgICAgICAgICAgICAgbWVhc3VyZXZhcj1cIkNIT0xcIiwgXG4gICAgICAgICAgICAgICAgICAgZ3JvdXB2YXJzPWMoXCJNT1JUXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCJTTU9LRVJcIikpXG5cbiNQbG90IHRoZSBjaG9sYyBkYXRhc2V0XG5nZ3Bsb3QoY2hvbGMsIGFlcyh4PVNNT0tFUiwgXG4gICAgICAgICAgICAgICAgICB5PUNIT0wsIFxuICAgICAgICAgICAgICAgICAgY29sb3VyPU1PUlQpKSArIFxuICBnZW9tX2Vycm9yYmFyKGFlcyh5bWluPUNIT0wtc2QsIFxuICAgICAgICAgICAgICAgICAgICB5bWF4PUNIT0wrc2QsIFxuICAgICAgICAgICAgICAgICAgICBncm91cD1NT1JUKSwgXG4gICAgICAgICAgICAgICAgd2lkdGg9LjEsIFxuICAgICAgICAgICAgICAgIHBvc2l0aW9uPXBkKSArIFxuICBnZW9tX2xpbmUoYWVzKGdyb3VwPU1PUlQpKSArIFxuICBnZW9tX3BvaW50KCkgKyBcbiAgZmFjZXRfZ3JpZCguIH4gTU9SVCkifQ==

Yalnızca facet_grid() işlevini ekleyerek iki grafiği yan yana istediğinizi belirtmenize dikkat edin. Grafiklerin nasıl çizileceğini belirlemek için kullanılan öğe MORT’tur; yukarıda açıkça görebilirsiniz!

gridExtra Kullanarak Daha Fazla Grafiği Yan Yana Çizin

Grafikleri yan yana bastırmak için gridExtra paketini kullanabilirsiniz; Paketin çalışma alanınızda kurulu ve etkin olduğundan emin olun ve ardından şuna benzer bir şey çalıştırın:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdyaWRFeHRyYWAgYW5kIGBnZ3Bsb3QyYFxubGlicmFyeShncmlkRXh0cmEpXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgUGxvdFxucGxvdDEgPC0gcXBsb3QoMSlcbnBsb3QyIDwtIHFwbG90KDEpXG5cbiMgQXJyYW5nZSBgcGxvdDFgIGFuZCBgcGxvdDJgXG5ncmlkLmFycmFuZ2UocGxvdDEsIFxuICAgICAgICAgICAgIHBsb3QyLCBcbiAgICAgICAgICAgICBuY29sPTIpIn0=

Burada yine iki grafiğin size nasıl görüneceğini ncol argümanı sayesinde belirlediğinize dikkat edin.

lattice Kullanarak Daha Fazla Grafiği Yan Yana Çizin

ggplot2 paketli çözüme benzer şekilde, lattice paketi de sınırları ya da grafiklerin yan yana nasıl basılacağını belirtmenizi gerektirmez.

Bunun yerine, bwplot() kullanarak bir kutu grafiği türünde trellis grafikleri yaparsınız. Trellis grafikleri, bir değişkeni veya değişkenler arası ilişkiyi, bir ya da daha fazla başka değişkene koşullandırarak görüntüler.

Bu durumda, chol veri setini kullanıyorsanız (ki bunu burada bulabilirsiniz veya read.table() işleviyle yükleyebilirsiniz), CHOL değişkenini, SMOKE ve MORT düzeylerinin her bir kombinasyonu için ayrı ayrı gösterirsiniz.

Aşağıdaki DataCamp Light parçasında verilerin sizin için yüklendiğine dikkat edin!

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgXG4gICAgICAgICAgICAgICAgICAgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIiIsInNhbXBsZSI6IiMgTG9hZCBgbGF0dGljZWBcbmxpYnJhcnkobGF0dGljZSlcblxuI1Bsb3QgdHdvIHBsb3RzIHNpZGUgYnkgc2lkZVxuYndwbG90KH4gQ0hPTHxTTU9LRVIrTU9SVCxcbiAgICAgICBjaG9sKSJ9

gridBase ile Grafikleri Yan Yana Çizme

İki grafiği yan yana yerleştirmenin bir başka yolu da, “temel ve grid grafiklerinin entegrasyonu”nu sağlayan gridBase paketini kullanmaktır. Bu, temel bir R grafiğiyle bir ggplot’u yan yana koymak istediğinizde kullanışlı olabilir.

Şöyle çalışırsınız: önce çalışma alanınızda gerekli paketleri etkinleştirirsiniz. Bu durumda, iki grafiği yan yana koymak için gridBase’e ve grafiklerinizi gerçekten üretmek için grid ile ggplot2’ye hazır olmak istersiniz:

library(grid)
library(gridBase)
library(ggplot2)

plot.new()

gl <- grid.layout(nrow=1, 
                  ncol=2)
vp.1 <- viewport(layout.pos.col=1, 
                 layout.pos.row=1) 
vp.2 <- viewport(layout.pos.col=2, 
                 layout.pos.row=1)
                 
pushViewport(viewport(layout=gl))
pushViewport(vp.1)

par(new=TRUE, 
    fig=gridFIG())
plot(x = 1:10, 
     y = 10:1)
     
popViewport()

pushViewport(vp.2)

ggplotted <- qplot(x=1:10,y=10:1, 'point')
print(ggplotted, newpage = FALSE)

popViewport(1)

İsterseniz ve ihtiyaç duyarsanız, yerleşimi ayarlamak için boş bir grafik başlatabilirsiniz. İki grafiğin yan yana üretilmesini istediğiniz için bir satır ve iki sütundan oluşan bir grid yerleşimi yapmanız gerektiğine dikkat edin.

Şimdi ızgaranın hücrelerini görüntü alanlarıyla doldurmak istersiniz. Bunlar, söz konusu bölgeler içindeki koordinatların yardımıyla grafik aygıtınızda dikdörtgen bölgeler tanımlar. Bu durumda, gerçek x veya y koordinatları yerine, yukarıda açıklanan ızgara özelliklerini kullanmak çok daha kullanışlıdır. Bu yüzden layout.pos.col ve layout.pos.row argümanlarını kullanmalısınız.

Görüntü alanları yalnızca tanım ya da betimleme olduklarından, çizimde herhangi bir etki görebilmeden önce bu tür nesnelerin görüntü alanı ağacına itilmesi gerekir. Bunu başarmak için pushViewport() işlevini kullanmak istersiniz.

Artık ilk dikdörtgen bölgeyi vp.1 ViewPort ağacına eklemeye geçebilirsiniz; ardından gridFig() ile R’ye bir grid görüntü alanı içine (yani vp.1) temel bir grafik çizmesini söylersiniz. fig argümanı normalde aygıtın görüntü bölgesindeki şekil bölgesinin koordinatlarını alır. Bu durumda, par() işlevinde new = TRUE ekleyerek yeni bir grafiği mevcut bir grafiğe eklemek için fig argümanını kullanırsınız. Temel grafiği çizer ve görüntü alanını ağaçtan kaldırırsınız:

plot.new()

gl <- grid.layout(nrow=1, 
                  ncol=2)

vp.1 <- viewport(layout.pos.col=1, 
                 layout.pos.row=1) 
vp.2 <- viewport(layout.pos.col=2, 
                 layout.pos.row=1)

pushViewport(viewport(layout=gl))

pushViewport(vp.1)

par(new=TRUE, 
    fig=gridFIG())
plot(x = 1:10, 
     y = 10:1)
popViewport()

İki grafiğin yan yana üretilmesini istediğiniz için, bir grafiği ilk sütuna, diğerini ikinci sütuna ve ikisini de birinci satıra yerleştirmek istersiniz.

pushViewport() işlevinin, kendi içinde bir layout argümanı içeren viewport() işlevini aldığına dikkat edin. Bu son argüman, “görüntü alanını alt bölgelere ayıran bir grid yerleşim nesnesi”ni belirtir.

Ayrıca, popViewport() işlevinde ağaçtan kaç görüntü alanını kaldırmak istediğinizi belirten bir argüman belirtebileceğinizi de unutmayın. Bu değer 0 ise, kök görüntü alanına kadar olan tüm görüntü alanlarını kaldırmak istediğinizi belirtir. Bu argümanın varsayılan değeri 1’dir.

İkinci dikdörtgen bölgeyi vp.2 ViewPort ağacına eklemeye geçin. Ardından ggplot’u oluşturabilir ve görüntü alanını ağaçtan kaldırabilirsiniz.

pushViewport(vp.2)
ggplotted <- qplot(x=1:10,
                   y=10:1, 
                   'point')
print(ggplotted, 
      newpage = FALSE)
popViewport(1)

qplot() ile oluşturulan grafik nesnesini gerçekten çizmek ve görüntülemek için yazdırmanız gerektiğine dikkat edin. Aynı zamanda newpage = FALSE belirtmek istersiniz; aksi takdirde yalnızca qplot()’u görürsünüz…

Ayrıca, unutmayın ki popViewport() işlevinde kaldırılacak görüntü alanlarının varsayılan değeri 1’dir. Bu da kodda popViewport(1) yazmayı bir ölçüde gereksiz kılar.

13. Birden Fazla Doğruyu veya Noktayı Nasıl Çizersiniz

Aynı R Grafiğinde Birden Fazla Doğruyu veya Noktayı Temel R ile Çizme

Aynı grafikte iki veya daha fazla grafiği çizmek için, esasen R’de tipik bir temel grafik oluşturarak başlarsınız. Sonra da grafiğe daha fazla doğru veya nokta eklersiniz. Bu durumda, grafiğe daha fazla doğru eklediğiniz için daha fazla y ekseni tanımlarsınız:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gc2VxKDAscGksMC4xKVxueTEgPC0gY29zKHgpXG5cbiMgUGxvdFxucGxvdCh4LFxuICAgICB5MSxcbiAgICAgdHlwZT1cImxcIixcbiAgICAgY29sID0gXCJyZWRcIilcblxuIyBNb3JlIGRhdGFcbnkyIDwtIHNpbih4KVxueTMgPC0gdGFuKHgpXG55NCA8LSBsb2coeClcblxuIyBMaW5lc1xubGluZXMoeCx5Mixjb2w9XCJncmVlblwiKVxubGluZXMoeCx5Mixjb2w9XCJncmVlblwiKVxubGluZXMoeCx5Myxjb2w9XCJibGFja1wiKVxubGluZXMoeCx5NCxjb2w9XCJibHVlXCIpIn0=

Ardından bu doğruların lines() işlevi kullanılarak çizildiğini görürsünüz.

Bu size aşağıdaki sonucu verir:

lines() işlevinin üç argüman aldığını not edin: çizmek istediğiniz x ekseni ve y ekseni ile, hangi renkte çizmek istediğinizi belirttiğiniz renk (col argümanı). Ayrıca şu özellikleri de ekleyebilirsiniz:

Özellik Argüman Girdi
Çizgi türü lty Tamsayı veya karakter dizisi
Çizgi kalınlığı lwd Tamsayı
Çizim türü pch Tamsayı veya tek karakter
Çizgi bitiş stili lend Tamsayı veya dize
Çizgi birleşim stili ljoin Tamsayı veya dize
Çizgi köşe sınırı lmitre 1’den küçük tamsayı

İşte bazı örnekler:

lines(x,y2,col="green", lty = 2, lwd = 3)
lines(x,y2,col="green", lty = 5, lwd = 2, pch = 2)
lines(x,y3,col="black", lty = 3, lwd = 5, pch = 3, lend = 0, ljoin = 2)
lines(x,y4,col="blue", lty = 1, lwd = 2, pch = 3, lend = 2, ljoin = 1, lmitre = 2)

pch argümanının lines() işleviyle pek iyi çalışmadığını ve en iyisinin onu yalnızca points() ile kullanmak olduğunu unutmayın.

İpucu: Aynı grafikte noktalar çizmek isterseniz points() işlevini kullanabilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gc2VxKDAscGksMC4xKVxueTUgPC0geF4zXG5cbiMgUG9pbnRzXG5wb2ludHMoeCxcbiAgICAgICB5NSxcbiAgICAgICBjb2w9XCJ5ZWxsb3dcIikifQ==

points() işlevine, yukarıda listelenen ve lines() işleviyle kullandığınız aynı argümanları ekleyebilirsiniz. Ancak bazı eklemeler vardır:

Özellik Argüman Girdi
Arka plan (dolgu) rengi bg Yalnızca pch = 21:25 ise
Karakter (veya sembol) ölçekleme cex Tamsayı

Bu argümanların kod örnekleri şöyledir:

points(x,y4,col="blue", pch=21, bg = "red") 
points(x, y5, col="yellow", pch = 5, bg = "blue") 
Yukarıda gördüğünüz grafiğe bu değişiklikleri dahil ederseniz, aşağıdaki sonucu elde edersiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gc2VxKDAscGksMC4xKVxueTEgPC0gY29zKHgpXG5cbiNiYXNpYyBncmFwaGljYWwgb2JqZWN0XG5wbG90KHgseTEsdHlwZT1cImxcIiAsY29sID0gXCJyZWRcIilcblxuIyBNb3JlIGRhdGFcbnkyIDwtIHNpbih4KVxueTMgPC0gdGFuKHgpXG55NCA8LSBsb2coeClcbnk1IDwtIHheM1xuXG4jZmlyc3QgbGF5ZXJcbmxpbmVzKHgseTIsY29sPVwiZ3JlZW5cIiwgbHR5ID0gMSwgbHdkID0gMykgXG4jc2Vjb25kIGxheWVyXG5saW5lcyh4LHkyLGNvbD1cImdyZWVuXCIsIGx0eSA9IDMsIGx3ZCA9IDIsIHBjaCA9IDIpIFxuI3RoaXJkIGxheWVyXG5saW5lcyh4LHkzLGNvbD1cImJsYWNrXCIsIGx0eSA9IDIsIGx3ZCA9IDEsIHBjaCA9IDMsIGxlbmQgPSAwLCBsam9pbiA9IDIpIFxuI2ZvdXJ0aCBsYXllclxucG9pbnRzKHgseTQsY29sPVwiYmx1ZVwiLCBwY2g9MjEsIGJnID0gXCJyZWRcIikgXG4jZmlmdGggbGF5ZXJcbnBvaW50cyh4LCB5NSwgY29sPVwieWVsbG93XCIsIHBjaCA9IDI0LCBiZyA9IFwiYmx1ZVwiKSAifQ==

Tek Bir R Grafiğinde Birden Fazla Doğruyu veya Noktayı ggplot2 ile Çizme

ggplot2 paketi, katmanlar oluşturmanıza da olanak tanır; bu sayede iki veya daha fazla grafiği aynı R grafiğinde zorlanmadan ve oldukça kolay bir şekilde çizebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgRGF0YVxueCA8LSAxOjEwXG55MSA8LSBjKDIsNCw2LDgsNywxMiwxNCwxNiwxOCwyMClcbnkyIDwtIHJub3JtKDEwLCBtZWFuID0gNSlcbmRmIDwtIGRhdGEuZnJhbWUoeCwgeTEsIHkyKVxuXG4jIGJhc2ljIGdyYXBoaWNhbCBvYmplY3RcbmdncGxvdChkZiwgYWVzKHgpKSArICBcbiAgIyBmaXJzdCBsYXllclxuICBnZW9tX2xpbmUoYWVzKHk9eTEpLCBcbiAgICAgICAgICAgIGNvbG91cj1cInJlZFwiKSArIFxuICAjIHNlY29uZCBsYXllclxuICBnZW9tX2xpbmUoYWVzKHk9eTIpLCAgICAgIFxuICAgICAgICAgICAgY29sb3VyPVwiZ3JlZW5cIikgIn0=

14. R Grafiklerinizde En-Boy Oranını Nasıl Sabitlersiniz

Eksenlerin boyutlarına orantılı olduğu bir görüntü olarak R grafiğinizi kaydetmek istiyorsanız, bu en-boy oranını sabitlemek istediğinizin bir işaretidir.

Temel R ile En-Boy Oranını Ayarlama

Grafiklerinizi üretmek için temel R komutlarıyla çalışırken, plot() işlevinin asp argümanını, bir tamsayı ile birlikte ekleyerek en-boy oranını ayarlayabilirsiniz. Önce tanımlı bir en-boy oranı olmayan bu ilk örneğe bakın:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gc2VxKDAsMipwaSwwLjEpXG55IDwtIHNpbih4KVxuXG4jIFBsb3RcbnBsb3QoeCx5KSJ9
Ve şimdi asp argümanıyla en-boy oranının tanımlandığı grafikle karşılaştırın:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIERhdGFcbnggPC0gc2VxKDAsMipwaSwwLjEpXG55IDwtIHNpbih4KVxuXG4jIFBsb3RcbnBsb3QoeCxcbiAgICAgeSwgXG4gICAgIGFzcD0yKSJ9

Grafiklerinizin En-Boy Oranını ggplot2 ile Ayarlama

ggplot2 grafiklerinin en-boy oranını sabitlemek için, “eksende veri birimlerinin fiziksel temsilleri arasında belirli bir oranı zorlayan sabit ölçekli koordinat sistemi” sağlayan coord_fixed() işlevini eklemeniz yeterlidir.

Başka bir deyişle, bu işlev, x eksenindeki bir birime karşılık gelen y ekseninde kaç birim olacağını belirtmenize olanak tanır. Varsayılan her zaman 1’dir; bu da x eksenindeki bir birimin, y eksenindeki bir birimle aynı uzunlukta olduğu anlamına gelir. Oranınız daha yüksek bir değere ayarlanmışsa, y eksenindeki birimler x eksenindekilerden daha uzundur; tersi durumda ise daha kısadır.

Şu örnekleri karşılaştırın:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgRGF0YVxuZGYgPC0gZGF0YS5mcmFtZSh4ID0gcnVuaWZoMTAwLCAwLCA1KSxcbiAgICAgICAgICAgICAgICAgeSA9IHJ1bmlmKDEwMCwgMCwgNSkpXG5cbiMgUGxvdFxuZ2dwbG90KGRmLCBhZXMoeD14LCB5PXkpKSArIGdlb21fcG9pbnQoKSJ9
ve
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiIjIExvYWQgaW4gYGdncGxvdDJgXG5saWJyYXJ5KGdncGxvdDIpXG5cbiMgRGF0YVxuZGYgPC0gZGF0YS5mcmFtZSh4ID0gcnVuaWZoMTAwLCAwLCA1KSxcbiAgICAgICAgICAgICAgICAgeSA9IHJ1bmlmKDEwMCwgMCwgNSkpXG5cbiMgUGxvdFxuZ2dwbG90KGRmLCBhZXMoeD14LCB5PXkpKSArIFxuICBnZW9tX3BvaW50KCkgKyBcbiAgY29vcmRfZml4ZWQocmF0aW89MSkifQ==

Grafiklerinizin En-Boy Oranını MASS ile Ayarlama

Ayrıca, MASS paketini de düşünebilirsiniz; bu paket, geometrik olarak eşit ölçekler üreten eqscplot() işlevini içerir. Bunu dağılım grafikleri için yapar:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImNob2wgPC0gcmVhZC50YWJsZSh1cmwoXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9ibG9nX2Fzc2V0cy9jaG9sLnR4dFwiKSwgaGVhZGVyID0gVFJVRSlcbmxldmVscyhjaG9sJFNNT0tFKVtsZXZlbHMoY2hvbCRTTU9LRSk9PVwiTm9uLXNtb2tlclwiXSA8LSBcIk5vbi1zbW9rZXJcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJTaWdhcmVcIl0gPC0gXCJTaWdhcmVcIlxubGV2ZWxzKGNob2wkU01PS0UpW2xldmVscyhjaG9sJFNNT0tFKT09XCJQaXBlXCJdIDwtIFwiUGlwZVwiXG5uYW1lcyhjaG9sKVtuYW1lcyhjaG9sKT09XCJTTU9LRVwiXSAgPC0gXCJTTU9LRVJcIiIsInNhbXBsZSI6IiMgTG9hZCBpbiBgTUFTU2BcbmxpYnJhcnkoTUFTUylcblxuIyBEYXRhXG54ID0gY2hvbCRIRUlHSFRcbnkgPSBjaG9sJFdFSUdIVFxueiA9IGFzLm51bWVyaWMoY2hvbCRNT1JUKVxuXG4jIFBsb3QgXG5lcXNjcGxvdCh4LCBcbiAgICAgICAgIHksIFxuICAgICAgICAgcmF0aW8gPSAxLCBcbiAgICAgICAgIGNvbD1jKFwicmVkXCIsIFwiZ3JlZW5cIiksIFxuICAgICAgICAgcGNoPWMoMSwyKSkifQ==

İpucu: Yukarıdaki kodu çalıştırmadan önce yeni bir çizim çerçevesi başlatmanız iyi olabilir!

eqscplot() işlevine, dağılım grafiğinin görünümünü özelleştirmek için ek argümanlar verebileceğinizi unutmayın!

15. ggplot2 İçinde hjust ve vjust Ne İşe Yarar

Temelde bu argümanları, ggplot’unuzdaki metnin konumunu ayarlamak istediğinizde kullanırsınız. hjust yatay hizalamayı tanımlamanızı sağlar; vjust ise dikey hizalamayı kontrol etmek içindir. Daha fazla bilgi için geom_text() belgelendirmesine bakın.

Ne olduğunu göstermek için, expand.grid() işleviyle faktörlerin tüm kombinasyonlarından bir veri çerçevesi oluşturabilirsiniz:

hjustvjust <- expand.grid(hjust=c(0, 0.5, 1),
                          vjust=c(0, 0.5, 1),
                          angle=c(0, 45, 90),
                          text="Text"
                          )

hjust ve vjust değerlerinin yalnızca 0 ile 1 arasında olabileceğini unutmayın.

  • 0, metnin sola hizalandığı anlamına gelir; Başka bir deyişle tüm metin sol kenara hizalanır. Bu genellikle Microsoft Word gibi metin düzenleyicilerde gördüğünüzdür.
  • 1, metnin sağa hizalandığı anlamına gelir: tüm metin sağ kenara hizalanır.
Ardından, yukarıda oluşturduğunuz veri çerçevesini ggplot() işleviyle, x ve y eksenlerini sırasıyla hjust ve vjust olarak tanımlayarak çizebilirsiniz:
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6ImhqdXN0dmp1c3QgPC0gZXhwYW5kLmdyaWQoaGp1c3Q9YygwLCAwLjUsIDEpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB2anVzdD1jKDAsIDAuNSwgMSksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGFuZ2xlPWMoMCwgNDUsIDkwKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dD1cIlRleHRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICApIiwic2FtcGxlIjoibGlicmFyeShnZ3Bsb3QyKVxuZ2dwbG90KGhqdXN0dmp1c3QsIGFlcyh4PWhqdXN0LCBcbiAgICAgICAgICAgICAgIHk9dmp1c3QpKSArIFxuICAgIGdlb21fcG9pbnQoKSArXG4gICAgZ2VvbV90ZXh0KGFlcyhsYWJlbD10ZXh0LCBcbiAgICAgICAgICAgICAgICAgIGFuZ2xlPWFuZ2xlLCBcbiAgICAgICAgICAgICAgICAgIGhqdXN0PWhqdXN0LCBcbiAgICAgICAgICAgICAgICAgIHZqdXN0PXZqdXN0KSkgKyBcbiAgICBmYWNldF9ncmlkKH5hbmdsZSkgK1xuICAgIHNjYWxlX3hfY29udGludW91cyhicmVha3M9YygwLCAwLjUsIDEpLCBcbiAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kPWMoMCwgMC4yKSkgK1xuICAgIHNjYWxlX3lfY29udGludW91cyhicmVha3M9YygwLCAwLjUsIDEpLCBcbiAgICAgICAgICAgICAgICAgICAgICAgZXhwYW5kPWMoMCwgMC4yKSkifQ==

Ayrıca, metinsel açıklamalardan sorumlu olan geom_text() içine hjust ve vjust argümanlarının nasıl eklendiğine dikkat edin.

Yukarıdaki grafikte, (0,0) noktasındaki metnin hem yatay hem dikey olarak sola hizalandığını görürsünüz. Öte yandan, (1,1) noktasındaki metin hem yatay hem de dikey yönde sağa hizalanmıştır. (0.5,0.5) noktası tam ortadadır: yatay ve dikey yönler açısından ne sola ne de sağa gerçekten hizalanmıştır.

Bu argümanlar eksen metnini değiştirmek için tanımlandığında, eksen metninin yatay hizalamasının x eksenine değil, tüm grafiğe göre belirlendiğine dikkat edin!
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJsaWJyYXJ5KGdncGxvdDIpXG5kZiA8LSBkYXRhLmZyYW1lKHg9TEVUVEVSU1sxOjNdLFxuICAgICAgICAgICAgICAgICB5PTE6MylcbnAgPC0gZ2dwbG90KGRmLCBhZXMoeCx5KSkgKyBcbiAgZ2VvbV9wb2ludCgpICsgXG4gIHlsYWIoXCJWZXJ5IGxvbmcgbGFiZWwgZm9yIHlcIikgKyBcbiAgdGhlbWUoYXhpcy50aXRsZS55PWVsZW1lbnRfdGV4dChhbmdsZT0wKSlcblxuXG5wMSA8LSBwICsgdGhlbWUoYXhpcy50aXRsZS54PWVsZW1lbnRfdGV4dChoanVzdD0wKSkgKyB4bGFiKFwiWC1heGlzIGF0IGhqdXN0PTBcIilcbnAyIDwtIHAgKyB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF90ZXh0KGhqdXN0PTAuNSkpICsgeGxhYihcIlgtYXhpcyBhdCBoanVzdD0wLjVcIilcbnAzIDwtIHAgKyB0aGVtZShheGlzLnRpdGxlLng9ZWxlbWVudF90ZXh0KGhqdXN0PTEpKSArIHhsYWIoXCJYLWF4aXMgYXQgaGp1c3Q9MVwiKVxuXG5saWJyYXJ5KGdyaWRFeHRyYSlcbmdyaWQuYXJyYW5nZShwMSwgcDIsIHAzKSJ9
Ayrıca, eksen metnini değiştirmek için vjust argümanını tanımlamanın grafiğinizin gösterimine ne yaptığını kendiniz de deneyin:
eyJsYW5ndWFnZSI6InIiLCJzYW1wbGUiOiJsaWJyYXJ5KGdncGxvdDIpXG5kZiA8LSBkYXRhLmZyYW1lKHg9YyhcImFcXG5hXCIsXCJiXCIsXCJjZGVmZ2hpamtcIixcImxcIiksXG4gICAgICAgICAgICAgICAgIHk9MTo0KVxucCA8LSBnZ3Bsb3QoZGYsIGFlcyh4LHkpKSArIGdlb21fcG9pbnQoKVxuXG5wMSA8LSBwICsgdGhlbWUoYXhpcy50ZXh0Lng9ZWxlbWVudF90ZXh0KHZqdXN0PTAsIGNvbG91cj1cInJlZFwiKSkgKyBcbiAgICAgICAgeGxhYihcIlgtYXhpcyBsYWJlbHMgYWxpZ25lZCB3aXRoIHZqdXN0PTBcIilcbnAyIDwtIHAgKyB0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQodmp1c3Q9MC41LCBjb2xvdXI9XCJyZWRcIikpICsgXG4gICAgICAgIHhsYWIoXCJYLWF4aXMgbGFiZWxzIGFsaWduZWQgd2l0aCB2anVzdD0wLjVcIilcbnAzIDwtIHAgKyB0aGVtZShheGlzLnRleHQueD1lbGVtZW50X3RleHQodmp1c3Q9MSwgY29sb3VyPVwicmVkXCIpKSArIFxuICAgICAgICB4bGFiKFwiWC1heGlzIGxhYmVscyBhbGlnbmVkIHdpdGggdmp1c3Q9MVwiKVxuXG5cbmxpYnJhcnkoZ3JpZEV4dHJhKVxuZ3JpZC5hcnJhbmdlKHAscDEscDIscDMpIn0=

Yukarıdaki kodun alındığı mükemmel özgün tartışmaya gitmek için buraya tıklayın.

Son Bir Not…

R grafiklerinizi en iyi görünecek şekilde yapmanız için 10 ipucu listeleyen bu yazıya göz atmaya değer!

Ayrıca, veri görselleştirme hakkında daha fazla bilgi almak isterseniz, Garrett Grolemund (Hands on Programming with R ve Data Science with R yazarı) tarafından verilen DataCamp’in etkileşimli ggvis ile veri görselleştirme kursunu incelemeyi düşünebilirsiniz.

Ya da belki de R Markdown ile raporlama kursumuz ilginizi çekebilir!

Konular
R
Veri Bilimi
Veri Görselleştirme

R hakkında daha fazla bilgi edinin

Kurs

ggplot2 ile Veri Görselleştirmeye Giriş

4 sa
191.2K
Grafiklerin dilbilgisini anlayarak ggplot2 ile anlamlı ve güzel veri görselleştirmeleri üretmeyi öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör