μ¬λ¬ κ°μ§ μ μμ€ κ·Έλν½ ν¨μμ κΈ°λ₯μ λͺ¨μμ νλμ μμ±λ νλ‘―μ 그리λ ν¨μλ₯Ό λ§λλλ°, μ΄λ¬ν ν¨μλ₯Ό κ³ μμ€ κ·Έλν½ ν¨μλΌκ³ νλ€.
κ°μ₯ λνμ μΈ κ³ μμ€ κ·Έλν½ ν¨μμ΄λ€. plot()μ λ°μ΄ν°λ₯Ό x-y μ’ν μμ μΆλ ₯νλ€.
# xμ’νλ₯Ό μν 벑ν°
x1 <- 1:5
# yμ’νλ₯Ό μν 벑ν°
y1 <- x1^2
# zμ’νλ₯Ό μν 벑ν°
z1 <- 5:1
# νλ ¬ μμ±
(mat1 <- cbind(x1,y1,z1))
# κ·Έλν½ μλμ°μ νλ©΄ λΆν (2ν 3μ΄)
op <- par(no.readonly = TRUE)
par(mfrow=c(2,3))
# μΌλ³λ κ·Έλν
plot(y1, main = "using index")
# μ΄λ³λ κ·Έλν
plot(x = x1, y = y1, main = "x^2")
# μ΄λ³λ κ·Έλν(νλ ¬)
plot(mat1, main = "using matrix")
plot(x1, y1, type = "l", main = "line")
plot(x1, y1, type = "h", main = "high density")
plot(x1, y1, type = "n", main = "no plotting")
# κ·Έλν½ μλμ°μ νλ©΄ λ³ν© (1ν 1μ΄)
par(op)
par() ν¨μλ κ·Έλν½ μ₯μΉμ μ΅μ
μ μ€μ νκ±°λ μ‘°ννλ ν¨μλ‘ κ·Έλν½ μ₯μΉλ₯Ό 2ν 3μ΄μ μμμΌλ‘ λΆν νκ³ , κ° plot() ν¨μκ° λΆν λ μ¬μ― κ°μ κ·Έλ¦Ό μμμ νλ‘―μ κ·Έλ Έλ€.
plot(x = x1, y = y1)λ νλ‘―μ xμ’νμ x1, yμ’νμ y1λ₯Ό λμνμ¬ μ°μ λλ₯Ό κ·Έλ¦°λ€. plot(x1, y1)μΌλ‘ ννν΄λ λλ€. plot(y1)μ μ€ννλ©΄ y1μ yμ’ν κ°μ΄ λκ³ xμ’ν κ°μλ index μ¦ 1:length(y1)μ΄ μ¬μ©λλ€. νλ ¬ mat1μ μ΄μ©νμ¬ plot(mat1)μ μ€νμν€λ©΄, 첫 λ²μ¨° μ΄μ xμ’ν κ°μΌλ‘ λλ²μ§Έ μ΄μ yμ’ν κ°μΌλ‘ μ¬μ©νλ€. νλ ¬μ λλ¨Έμ§ μ΄μΈ z1μ μ¬μ©λμ§ μλλ€.
type μΈμλ "p"κ° κΈ°λ³Έ κ°μΌλ‘ μ’ν (x1[1], y1[1]), ... , (x1[n], y1[n])μ nκ°μ μ μ μ°μ΄ μ°μ λλ₯Ό κ·Έλ¦°λ€.
type μΈμμ κ°μ μ 리νλ©΄ λ€μκ³Ό κ°λ€.
main μΈμλ νλ‘―μ λ©μΈ νμ΄νμ λ§λ€μ΄ μ€λ€.
μ μμ€ κ·Έλν½ ν¨μμλ κ·Έλν½ μ₯μΉμ κΈ°λ³Έμ μΈ νκ²½μ μ€μ νλ par() ν¨μλ₯Ό λΉλ‘―ν΄μ μ , μ , λ©΄, λ¬Έμ, μ’νμΆ, λ²λ‘λ₯Ό λ§λλ ν¨μ λ± μΌμΌμ΄ μ΄κ±°νκΈ° νλ€ μ λλ‘ λ§μ κ²μ΄ μλ€. par() ν¨μλ₯Ό μ μΈν μ΄λ€ ν¨μλ κ³ μμ€ κ·Έλν½ ν¨μλ₯Ό μ΄μ©ν΄μ κ·Έλ € λμ νλ‘― μμμ λμνλ©°, μ μ μ°κ±°λ μ λͺ©μ μ λ ₯νλ λ±μ κ·Έλν½ κΎΈλ° μμ μ νλ€.
points() ν¨μλ νλ‘― μμμ μ§μ ν μ’ν μμ μ μ μ°λλ€. κΈ°λ³Έμ μΈ μΈμλ‘λ xμ’νλ₯Ό μ§μ νλ xμ yμ’νλ₯Ό μ§μ νλ yκ° μμΌλ©°, μ’νλ₯Ό μ§μ νλ λ°©λ²μ plot() ν¨μμ λμΌνλ€.
x <- rep(1:5, rep(5,5))
x
y <- rep(5:1, 5)
y
pchs <- c("&", "z", "Z", "1", "κ°")
plot(1:5, type = "n", xlim = c(0, 7.5), ylim = c(0.5, 5.5), main = "point by 'pch'")
points(x, y, pch = 1:25, cex = 1.5)
text(x - 0.4, y, labels = as.character(1:25), cex = 1.2)
points(rep(6,5), 5:1, pch = 65:69, cex = 1.5)
text(rep(6,5) - 0.4, y , labels = as.character(65:69), cex = 1.2)
points(rep(7,5), 5:1, pch = pchs, cex = 1.5)
text(rep(7,5) - 0.4, y, labels = paste("'", pchs, "'", sep = ""), cex = 1.2)
pch μΈμλ μ μ λͺ¨μμ μ§μ νλ μΈμλ‘ μΈ κ°μ§ λ°©λ²μ μ¬μ©ν μ μλ€.
1~25μ μ μλ μ μλ 25κ°μ§ μ¬λ³Όμ μΆλ ₯νλ€. λ λ²μ§Έλ‘ 32λΆν° 127κΉμ§μ μ μλ μμ€ν€ λ¬Έμλ₯Ό μΆλ ₯νλ€. λ§μ§λ§μ λ¬Έμλ₯Ό μ§μ μ§μ νλ κ²½μ°λ‘ λ¬Έμν λ°μ΄ν°λ₯Ό μ
λ ₯νλ€. νκΈλ μ§μνλ€. κ·Έλ¬λ λ¬Έμμ κΈΈμ΄λ 1μ΄μ΄μΌ νλ€. μ΄λ³΄λ€ κΈ΄ λ¬Έμμ΄μ μ
λ ₯νλ€λ©΄ 맨 μ²μ λ¬Έμλ§ μΆλ ₯λλ€.
cex μΈμλ μ μ ν¬κΈ°λ₯Ό μ§μ νλ€. κΈ°λ³Έ κ°μ΄ 1μ΄λ©° μΈμμ ν¬κΈ°μ μ μ ν¬κΈ°λ λΉλ νλ€.
plot() ν¨μμμ xlim(x-axis limits) μΈμμ ylim(y-axis limits) μΈμλ κ°κ° xμΆκ³Ό yμΆμ μ’ν λ²μλ₯Ό μ§μ νλ€.
text() ν¨μλ λ¬Έμμ΄μ μ’ν μμμ μΆλ ₯νλ ν¨μλ‘ points() ν¨μμ κΈ°λ₯μ΄ λΉμ·νλ€.
abline() ν¨μλ μ§κ΅μ’νμ μ§μ μ 그리λ ν¨μλ‘, μΈμμ μ’ λ₯λ³λ‘ λ€μκ³Ό κ°μ΄ λ€μ― κ°μ§ λ°©λ²μΌλ‘ μ§μ μ κ·Έλ¦°λ€.
cars[1:4,]
z <- lm(dist ~ speed, data = cars)
is(z)
z$coefficients
plot(cars, main = "abline")
# horizontal
abline(h = 20)
abline(h = 30)
# veritical
abline(v = 20, col = "blue")
# y = a + bx
abline(a = 40, b = 4, col = "red")
# reg μΈμ
abline(z, lty = 2, lwd = 2, col = "green")
# coef μΈμ
abline(z$coefficients, lty = 3, lwd = 2, col = "red")
abline(h = 20), abline(h = 30)μ xμΆμ ννν μ§μ μΌλ‘ y = 20κ³Ό y = 30μΈ μ§μ μ κ·Έλ¦°λ€. abline(v = 20)μ yμΆμ ννν μ§μ μΌλ‘ x = 20μΈ μ§μ μ κ·Έλ¦°λ€. abline(a = 40, b = 4)μ μ νΈμ΄ 40μ΄κ³ κΈ°μΈκΈ°κ° 4μΈ μ§μ μ κ·Έλ¦°λ€. μ¦, y = 40 + 4xμ μ§μ μ κ·Έλ¦°λ€. λν abline(40,4)λΌ ν΄λ κ²°κ³Όλ λμΌνλ€.
abline(z, lty = 2, lwd = 2) μμ λ€λ₯Έ μ§μ κ³Ό ꡬλ³νκΈ° μν΄ lty μΈμλ‘ μ§μ μ λͺ¨μμ νμ μΌλ‘ λ°κΎΈκ³ , lwd μΈμλ₯Ό μ΄μ©ν΄μ μ§μ μ κ΅΅κ² νμνλ€.
lines() ν¨μλ μ’νμ μ λ€μ μ΄μ΄μ μ μ 그리λ ν¨μλ€. plot()ν¨μμ type μΈμμ "l"μ μ¬μ©ν κ²κ³Ό μ μ¬νλ©° μ’νλ₯Ό μ§μ νλ λ°©λ²λ plot() ν¨μμ λμΌνλ€. lty μΈμλ‘ μ μ λͺ¨μμ μ§μ νλ€.
op <- par(no.readonly = TRUE)
par(mar = c(0,2,3,2))
lty1 <- c("blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash")
lty2 <- c("33", "24", "F2", "2F", "3313", "F252", "FF29")
plot(0:6, 0:6, type = "n", ylim = c(0,20), xlab = "", ylab = "", main = "lines")
lines(c(1, 3), c(20, 20), lty = 1); text(4, 20, "1")
lines(c(1, 3), c(19, 19), lty = 2); text(4, 19, "2")
lines(c(1, 3), c(18, 18), lty = 3); text(4, 18, "3")
lines(c(1, 3), c(17, 17), lty = 4); text(4, 17, "4")
lines(c(1, 3), c(16, 16), lty = 5); text(4, 16, "5")
lines(c(1, 3), c(15, 15), lty = 6); text(4, 15, "6")
lines(c(1, 3), c(14, 14), lty = lty1[1]); text(4, 14, lty1[1])
lines(c(1, 3), c(13, 13), lty = lty1[2]); text(4, 13, lty1[2])
lines(c(1, 3), c(12, 12), lty = lty1[3]); text(4, 12, lty1[3])
lines(c(1, 3), c(11, 11), lty = lty1[4]); text(4, 11, lty1[4])
lines(c(1, 3), c(10, 10), lty = lty1[5]); text(4, 10, lty1[5])
lines(c(1, 3), c(9, 9), lty = lty1[6]); text(4, 9, lty1[6])
lines(c(1, 3), c(8, 8), lty = lty1[7]); text(4, 8, lty1[7])
lines(c(1, 3), c(7, 7), lty = lty2[1]); text(4, 7, lty2[1])
lines(c(1, 3), c(6, 6), lty = lty2[2]); text(4, 6, lty2[2])
lines(c(1, 3), c(5, 5), lty = lty2[3]); text(4, 5, lty2[3])
lines(c(1, 3), c(4, 4), lty = lty2[4]); text(4, 4, lty2[4])
lines(c(1, 3), c(3, 3), lty = lty2[5]); text(4, 3, lty2[5])
lines(c(1, 3), c(2, 2), lty = lty2[6]); text(4, 2, lty2[6])
lines(c(1, 3), c(1, 1), lty = lty2[7]); text(4, 1, lty2[7])
par(op)
lty μΈμμ μΈμ κ°μ μ§μ νλ λ°©λ²μλ μΈ κ°μ§κ° μλ€. 첫 λ²μ§Έλ 1λΆν° 6κΉμ§μ μ μλ₯Ό μ§μ νλ λ°©λ²μΌλ‘ κ°κ°μ μ μμ 미리 μ μλ λͺ¨μμΌλ‘ μ μ κ·Έλ¦°λ€. 6λ³΄λ€ ν° μ μλ₯Ό μ§μ νλ©΄ 리μ¬μ΄ν΄λ§ λ£°μ μν΄μ 7μ 1, 8μ 2μ ν΄λΉνλ μ μ κ·Έλ¦°λ€. λ λ²μ§Έλ μ μ μ ν μ΄λ¦μ λ¬Έμμ΄λ‘ μ§μ νλ λ°©λ²μ΄λ€. μ μ μ ν μ΄λ¦μλ "blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash"μ μΌκ³± κ°μ§κ° μλ€. μ¬κΈ°μ "blank"λ μ μ΄ μμμ μλ―Ένκ³ , λλ¨Έμ§ μ¬μ― κ°λ μ μλ‘ μ§μ ν κ²κ³Ό λμΌνλ€. μ¦ λ€μκ³Ό κ°μ κ΄κ³κ° μ±λ¦½νλ€.
μΈ λ²μ§Έ λ°©λ²μ μ¬μ©μκ° μμμ ν¨ν΄μΌλ‘ μ λͺ¨μμ μ μνλ λ°©λ²μ΄λ€. μ΄ λ°©λ²μ λ€μκ³Ό κ°μ λ κ°μ§ μ νμΌλ‘ λλμ μλ€.
μΈμ κ°μμ Bλ black, Wλ whiteλ₯Ό μλ―Ένλ©° 16μ§μλ₯Ό μ¬μ©νλ€. Bλ κ²μμ κΈΈμ΄λ₯Ό μλ―Ένλ―λ‘ μ μ κΈΈμ΄λ₯Ό Wλ νμμ κΈΈμ΄λ₯Ό μλ―Ένλ―λ‘ κ³΅λ°±μ κΈΈμ΄λ₯Ό μλ―Ένλ€. νμ μΌ κ²½μ°λ "33"μ λλ‘ νμν μ μλ€. μ μ κΈΈμ΄κ° 3μ΄κ³ 곡백μ κΈΈμ΄κ° 3μΈ κ²μ΄ λ°λ³΅ν΄μ μ΄λ£¨μ΄μ§ μ μ λͺ¨μμ μ μνλ κ²μ΄λ€. "F252"λ μ μ κΈΈμ΄κ° 15μ΄κ³ 곡백μ κΈΈμ΄κ° 2, λ€μ μ μ κΈΈμ΄κ° 5μ΄κ³ 곡백μ κΈΈμ΄κ° 2μΈ λ°λ³΅ ν¨ν΄μ μ μνλ€.
plot() ν¨μμμ μ¬μ©ν xlab(x-axis labels) μΈμμ ylab(x-axis labels) μΈμλ xμΆκ³Ό yμΆμ λΌλ²¨ μ΄λ¦μ μ§μ νλ μΈμλ‘ μ μ½λμμλ μ΄λ¦μ μΆλ ₯νμ§ μκΈ° μν΄μ """"μ μ
λ ₯νμλ€. lines() ν¨μλ abline() ν¨μμ²λΌ lwd μΈμλ₯Ό μ΄μ©ν΄μ μ μ κ΅΅κΈ°λ₯Ό μ§μ νκ³ col μΈμλ₯Ό μ¬μ©ν΄μ μ μ μμμ μ§μ νλ€.
arrows() ν¨μλ νμ΄νλ₯Ό 그리λ ν¨μλ€. μ΄ ν¨μλ μ’ν κ°μΌλ‘ λ€ κ°μ μΈμλ₯Ό μ¬μ©νλ€. μ’νμμ νμ΄νμ μμμ κ³Ό λμ μ λνλ΄λ μΈμλ‘ x0, y0, x1, y1μ μ¬μ©νλ€.
op <- par(no.readonly = TRUE)
par(mar = c(0,0,2,0))
plot(1:9, type = "n", axes = FALSE, xlab = "", ylab = "", main = "arrows")
arrows(1, 9, 4, 9, angle = 30, length = 0.25, code = 2)
text(4.5, 9, adj = 0, "angle = 30, length = 0.25, code = 2(default)")
arrows(1, 8, 4, 8, length = 0.5); text(4.5, 8, adj = 0, "length = 0.5")
arrows(1, 7, 4, 7, length = 0.1); text(4.5, 7, adj = 0, "length = 0.1")
arrows(1, 6, 4, 6, angle = 60); text(4.5, 6, adj = 0, "angle = 60")
arrows(1, 5, 4, 5, angle = 90); text(4.5, 5, adj = 0, "angle = 90")
arrows(1, 4, 4, 4, angle = 120); text(4.5, 4, adj = 0, "angle = 120")
arrows(1, 3, 4, 3, code = 0); text(4.5, 3, adj = 0, "code = 0")
arrows(1, 2, 4, 2, code = 1); text(4.5, 2, adj = 0, "code = 1")
arrows(1, 1, 4, 1, code = 3); text(4.5, 1, adj = 0, "code = 3")
par(op)
angle μΈμλ νμ΄μ κ°λλ₯Ό λνλ΄λ©° κΈ°λ³Έ κ°μΌλ‘ 30μ΄ μ€μ λμ΄ μλ€. length μΈμλ νμ΄μ κΈΈμ΄λ₯Ό λνλ΄λλ°, λ¨μλ inch μ΄λ©° 0.25κ° κΈ°λ³Έ κ°μΌλ‘ μ€μ λμ΄ μλ€. code μΈμλ νμ΄νμ λͺ¨μμ μ€μ νλ€. 0μ νμ΄μ΄μ΄ μλ μ μ΄κ³ , 1μ μμμ μ νμ΄μ΄μ΄ μλ νμ΄ν, 2λ λμ μ νμ΄μ΄μ΄ μλ νμ΄ν, 3μ μμμ κ³Ό λμ λͺ¨λ νμ΄μ΄μ΄ μλ νμ΄νλ₯Ό μλ―Ένλ€.
arrows() ν¨μλ lty, lwd, col μΈμλ₯Ό μ¬μ©νμ¬ μ μ νν, κ΅΅κΈ°, μμμ μ§μ ν μ μλ€.
plot() ν¨μμμ μ¬μ©ν axes μΈμλ μ’νμΆμ μΆλ ₯μ¬λΆλ₯Ό μ€μ νλ μΈμμΈλ° FALSEλ₯Ό μ§μ νμ¬ μ’νμΆμ νμνμ§ μμλ€. axes μΈμμ κΈ°λ³Έ κ°μ TRUEλ€. text() ν¨μλ μ’νμ λ¬Έμμ΄μ μΆλ ₯νλ ν¨μλ€.
segments() ν¨μλ μ’νμ λ€μ κ·Έλ£Ήμ λ§λ ν κ°κ°μ κ·Έλ£Ήλ³λ‘ κΊΎμμ μ κ·Έλ¦°λ€λ μ λ§ λΉΌκ³ lines() ν¨μμ λμΌν κΈ°λ₯μ νλ€. κ·Έλ¬λ―λ‘ νλμ κΊΎμμ μ΄ μλλΌ μ¬λ¬ κΊΎμμ μ ν μ’ν μμ ννν κ²½μ°μ μ¬μ©νλ€.
op <- par(no.readonly = TRUE)
par(mar = c(4, 4, 3, 2), mfrow = c(2,1))
set.seed(3)
x <- runif(12)
set.seed(4)
y <- rnorm(12)
i <- order(x); x <- x[i]; y <- y[i]
plot(x, y, main = "2 segments by segments function")
s <- seq(length(x) - 1)
segments(x[s], y[s], x[s+2], y[s+2], lty = 1:2)
plot(x, y, main = "3 segments by segments function")
s <- seq(length(x) - 2)
segments(x[s], y[s], x[s+3], y[s+3], lty = 1:3)
box(which = "outer")
par(op)
첫 λ²μ§Έ segments() ν¨μλ νμ λ²μ§Έ μ λΌλ¦¬ μ°κ²°νμ¬ νλμ κΊΎμμ μ κ·Έλ¦¬κ³ , μ§μ λ²μ§Έ μ λΌλ¦¬ μ°κ²°νμ¬ λ νλμ κΊΎμμ μ κ·Έλ¦°λ€. λ λ²μ§Έ segments() ν¨μλ μΈ κ°μ κΊΎμμ μ κ·Έλ¦°λ€.