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çincolors()ç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:
groupbir faktörkencol = 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:
cexnokta boyutunu ölçekler:cex = 1.5noktaları bir buçuk kat büyütür.lwd,type = "l"ya da"b"için çizgi kalınlığını ayarlar:lwd = 2dolgun, okunabilir bir çizgidir.ltyçizgi desenini ayarlar:lty = 1düz,2kesikli,3noktalı.
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)-akesişimi vebeğ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,ylabgrafiği etiketler;colrenk adlarını (colors()içinde 657 tanesi) ya da hex kodlarını alır.pch = 19dolu dairedir;pch = 21–25kenarlığı (col) dolgudan (bg) ayırır;cex,lwd,ltyboyut ve çizgi stilini denetler.points(),lines()veabline()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.