Menu

R'de plot() Fonksiyonu: Türler, Renkler, pch ve Açıklamalar

R'nin plot() fonksiyonu nasıl çalışır - grafik türleri, başlıklar ve eksen etiketleri, renkler, nokta sembolleri (pch), lines() ve abline() ile katmanlama ve açıklamalar.

Bu sayfada çalıştırılabilir editörler var - düzenle, çalıştır ve sonucu anında gör.

plot(), R'nin Her İşi Gören Grafik Fonksiyonudur

R'de grafik çizmek için aynı uzunlukta iki sayısal vektörle plot(x, y) çağırın. R her çift için bir nokta çizer - ilk vektör yatay eksende, ikincisi dikey eksende - ve eksenleri değişken adlarıyla otomatik etiketler:

x <- 1:12
y <- c(2, 5, 4, 8, 9, 12, 11, 15, 14, 18, 17, 21)

plot(x, y)

Sonuç, x büyüdükçe istikrarlı biçimde tırmanan on iki içi boş daireden oluşan bir saçılımdır. Giriş bedelinin tamamı budur: kurulacak paket yok, hazırlık yok. plot() temel R ile gelir ve hızlı, keşifsel grafiklerin çoğunun arkasındaki fonksiyondur.

Bu sayfadaki kod çalıştırıcısı yalnızca metin çıktısı gösterdiğinden, bu yazıdaki grafik çağrıları statik parçacıklardır - resimleri görmek için onları RStudio'ya ya da herhangi bir yerel R oturumuna yapıştırın. Burada çalıştırabileceğiniz şey veri hazırlığıdır. Zaten iyi bir alışkanlıktır: sayıları çizmeden önce onlara bakın.

Yalnızca bir vektör geçirirseniz plot(y), yatay eksen olarak 1, 2, 3, ... indeks konumlarını kullanır - bir ölçüm dizisine hızlıca göz atmak için kullanışlıdır.

Grafik Türünü Seçmek

type argümanı çiftlerin nasıl çizileceğine karar verir:

plot(x, y, type = "p")   # points (the default)
plot(x, y, type = "l")   # a connected line
plot(x, y, type = "b")   # both: points joined by line segments
plot(x, y, type = "h")   # vertical bars from zero, like a spike chart
plot(x, y, type = "s")   # a step function

type = "l", saçılımı bir çizgi grafiğine çevirir; zaman içinde ölçülen her şey için istediğiniz budur. type = "b", eğilimi göstermeye devam ederken tekil gözlemleri de görünür tutar. type = "h", sıfırdan her değere ince bir dikey parça çizer ve type = "s", her değeri bir sonrakine kadar koruyan bir merdiven çizer - fiyat ya da stok sayısı gibi sıçramalarla değişen nicelikler için kullanışlıdır.

Başlıklar, Etiketler ve Renkler

Etiketsiz bir grafik, kendinize yazdığınız özel bir nottur. Üç argüman bunu düzeltir: başlık için main, eksen etiketleri için xlab ve ylab. col rengi ayarlar:

plot(x, y,
     type = "b",
     main = "Monthly signups",
     xlab = "Month",
     ylab = "Signups (thousands)",
     col  = "steelblue")

col üç tür değer kabul eder:

  • İsimli renkler - "red", "steelblue", "tomato", "darkgreen". R bunlardan 657 tanesini bilir; hepsini listelemek için colors() çalıştırın.
  • Hex kodları - col = "#2C7FB8", tıpkı CSS'teki gibi.
  • Bir renk vektörü - nokta başına bir renk; noktaları gruba göre böyle renklendirirsiniz: group bir faktörken col = c("tomato", "steelblue")[group].

pch ile Nokta Sembolleri, cex ve lwd ile Boyutlar

İçi boş varsayılan daire keşif için uygundur ama başkalarına gösterdiğiniz her şeyde bulanıktır. pch (plotting character), 0'dan 25'e numaralandırılmış sembolü seçer:

plot(x, y, pch = 19)                     # solid circle - the usual choice
plot(x, y, pch = 17)                     # solid triangle
plot(x, y, pch = 21, col = "black",
     bg = "gold")                        # fillable circle: border + fill

Ezberlenmeye değer iki sayı var. pch = 19, tamamlanmış grafiklerin çoğunun kullandığı dolu dairedir. pch = 21 ile 25 arası doldurulabilir sembollerdir: col kenarlığı, bg içini renklendirir; böylece iki tonlu noktalar elde edersiniz.

Boyut ve çizgi stilinin kendi ayarları vardır:

  • cex nokta boyutunu ölçekler: cex = 1.5 noktaları bir buçuk kat büyütür.
  • lwd, type = "l" ya da "b" için çizgi kalınlığını ayarlar: lwd = 2 dolgun, okunabilir bir çizgidir.
  • lty çizgi desenini ayarlar: lty = 1 düz, 2 kesikli, 3 noktalı.

Katmanlama: points(), lines() ve abline()

plot() yeni bir grafik başlatır. Var olanın üzerine çizmek için yardımcılarını kullanın - bunlar mevcut grafiğin yerini almak yerine ona ekleme yapar:

plot(x, y, type = "l", lwd = 2, col = "steelblue",
     main = "Actual vs. target")

points(x, y, pch = 19, col = "steelblue")   # add the observations
lines(x, x * 1.5, lty = 2, col = "gray40")  # add a second series, dashed
abline(h = 10, col = "tomato")              # horizontal reference line at y = 10

abline() referans çizgisi aracıdır ve üç modu vardır:

  • abline(h = 10) - verilen bir dikey eksen değerinde yatay çizgi.
  • abline(v = 6) - verilen bir yatay eksen değerinde dikey çizgi.
  • abline(a = 0, b = 1.5) - a kesişimi ve b eğimiyle tanımlı bir çizgi.

En iyi numarası: ona uydurulmuş bir model geçirin, regresyon çizgisini sizin için çizer - abline(lm(y ~ x)). O tek satır bir saçılımı bir argümana dönüştürür; saçılım grafiği rehberi bunun üzerine inşa eder.

Uyulması gereken bir kural: eksen sınırları ilk plot() çağrısıyla sabitlenir. Katmanlanan bir seri bunların ötesine uzanırsa kırpılır - orijinal plot() çağrısında xlim = ve ylim = değerlerini eklemeyi planladığınız her şeye yetecek cömertlikte ayarlayın.

Açıklama Ekleme

Bir grafik birden fazla seri içerdiğinde bir açıklamaya ihtiyaç duyar. legend() ilk argüman olarak bir konum anahtar sözcüğü alır - "topright", "topleft", "bottomright", "bottomleft", "top", "bottom" ya da "center" (bunlar birebir R metinleridir, dolayısıyla kodunuzda İngilizce kalırlar) - sonra etiketler ve eşleşen stiller gelir:

legend("topright",
       legend = c("Actual", "Target"),
       col    = c("steelblue", "gray40"),
       lty    = c(1, 2),
       pch    = c(19, NA),
       lwd    = 2)

col, lty ve pch vektörleri legend ile girdi girdi hizalanmalıdır - ilk etiket ilk rengi alır, ve böyle devam eder. Bir seriye uygulanmayan bir stil için NA kullanın (burada hedef çizgisinin noktası yok). Anahtar sözcük kutuyu grafik bölgesinin bir köşesine sabitler; verinizin boş bıraktığı köşeyi seçin.

Çoklu Paneller ve Dosyaya Kaydetme

Tek bir şekilde birkaç grafik göstermek için çizmeden önce grafik ızgarasını ayarlayın: par(mfrow = c(1, 2)), aygıtı bir satır ve iki sütuna böler ve sonraki iki plot() çağrısı panelleri sırayla doldurur. İşiniz bittiğinde par(mfrow = c(1, 1)) ile sıfırlayın, yoksa sonraki grafikler minicik kalır.

Dosyaya kaydetme, çizimi ekran yerine bir dosya aygıtına yönlendirerek çalışır:

png("signups.png", width = 800, height = 600)

plot(x, y, type = "b", pch = 19, col = "steelblue",
     main = "Monthly signups", xlab = "Month", ylab = "Signups")

dev.off()

png() ile dev.off() arasındaki her şey dosyaya düşer; ekranda hiçbir şey görünmez. dev.off() unutmak klasik hatadır - aygıtı kapatana kadar dosya kilitli ve boş kalır. pdf(), jpeg() ve svg() aynı şekilde çalışır.

Buradan Ne Çıkarıyorsunuz

  • plot(x, y) anında çizer; type = noktalar ("p"), çizgiler ("l") ve ikisi ("b") arasında geçiş yapar.
  • main, xlab, ylab grafiği etiketler; col renk adlarını (colors() içinde 657 tanesi) ya da hex kodlarını alır.
  • pch = 19 dolu dairedir; pch = 2125 kenarlığı (col) dolgudan (bg) ayırır; cex, lwd, lty boyut ve çizgi stilini denetler.
  • points(), lines() ve abline() var olan grafiğe katmanlanır - abline(lm(y ~ x)) tek çağrıda bir regresyon çizgisi ekler.
  • legend("topright", ...) serileri etiketler; png(...) + dev.off() dosyaya kaydeder.

Sırada: histogram - yeni bir veri kümesiyle tanışırken ilk uzanacağınız tek değişkenli grafik.

Sıkça Sorulan Sorular

R'de nasıl grafik çizilir?

Aynı uzunlukta iki sayısal vektörle plot(x, y) çağırın. R bir grafik penceresi açar ve her çift için bir nokta çizer. Çizgi grafiği için type = "l", başlıklar için main, xlab ve ylab, renk için col ekleyin.

R'de pch ne demektir?

pch (plotting character), 0'dan 25'e numaralandırılmış nokta sembolünü seçer. pch = 19, çoğu kişinin istediği dolu dairedir. 21'den 25'e semboller ayrı bir dolguya sahiptir: col kenarlığı, bg içini ayarlar.

R'de bir grafiğe nasıl açıklama eklenir?

Grafikten sonra legend() çağırın; ilk argüman olarak "topright" gibi bir konum anahtar sözcüğü, bir legend = etiket vektörü ve grafikte kullandığınız eşleşen col, pch ya da lty değerleriyle.

Bir R grafiği dosyaya nasıl kaydedilir?

Çizmeden önce bir dosya aygıtı açın ve sonrasında kapatın: png("myplot.png", width = 800, height = 600), sonra grafik kodunuz, sonra dev.off(). Ekranda hiçbir şey görünmez - grafik doğrudan dosyaya gider.

Coddy programming languages illustration

Coddy ile kodlamayı öğren

BAŞLA