λ©΄μ 그리λ ν¨μμλ box(), rect(), polygon() μ΄ μλ€.
box() ν¨μλ νμ¬μ κ·Έλν½ μ₯μΉμ νΉμ μμμ μ¬κ°ν μμλ₯Ό κ·Έλ¦°λ€. μΈμμλ whichκ° μλλ° μμλ₯Ό 그릴 μμμ μ§μ νλ€. μΈμ κ°μΌλ‘λ "outer", "inner", "plot", "figure"κ° μλ€. "outer"λ κ·Έλν½ μ₯μΉμ λ°κΉ₯μͺ½μ μλ―Ένλ©°, "inner"λ λ°κΉ₯ λ§μ§μ μμͺ½ μμμ μλ―Ένλ€. "figure"λ κ·Έλ¦Ό μμμ ν λ리λ₯Ό μλ―Ένκ³ "plot"μ νλ‘― μμμ ν λ리λ₯Ό μλ―Ένλ€. κΈ°λ³Έ κ°μΌλ‘ "plot"μ΄ μ€μ λμ΄ μλ€.
op <- par(no.readonly = TRUE)
# margin & outer margin
par(mar = c(2, 2, 2, 2), oma = c(2, 2, 2, 2))
set.seed(1)
hist(rnorm(50), axes = F, xlab = "", ylab = "", main = "box")
# μμμ μ’
λ₯
whichs <- c("outer", "inner", "plot", "figure")
box(which = whichs[1], lty = 1, lwd = 1.2, col = "red")
box(which = whichs[2], lty = 2, lwd = 1.2, col = "black")
box(which = whichs[3], lty = 3, lwd = 1.2, col = "blue")
box(which = whichs[4], lty = 4, lwd = 1.2, col = "green")
legend(locator(1), legend = whichs, lwd = 1.2, lty = 1:4,
col = c("red", "black", "blue", "green"))
par(op)
hist() ν¨μλ νμ€ν κ·Έλ¨μ 그리λ κ³ μμ€ κ·Έλν½ ν¨μλ€. μ¬κΈ°μλ 50κ°μ μ κ·λμμ λΆν¬λ₯Ό νμ€ν κ·Έλ¨μΌλ‘ μΆλ ₯νμλ€. νλ©΄μ λΆν νμ§ μμκΈ° λλ¬Έμ which μΈμ κ°μΌλ‘ μ¬μ©ν "inner"μ "figure"μ ν΄λΉνλ μμμ μμΉκ° λμΌνλ€.
box() ν¨μμ bty μΈμλ μμμ λͺ¨μμ μ§μ νλ€. μ΄ μΈμλ μ¬μ€μ which μΈμ κ°μ΄ "plot"μΌ κ²½μ°μλ§ μ μ©νκ² μ°μΌ μ μλ€. κ·Έ μ΄μ λ bty μΈμκ° μ§μ νλ μμμ λͺ¨μμ΄ νλ‘―μ μ’νμΆμ λλ¬μΌ μμμ λͺ¨μμ μλ―ΈνκΈ° λλ¬Έμ΄λ€. κ·Έλ¬λ―λ‘ which μΈμμ μΈμ κ°μ΄ "plot"μ΄ μλ κ²½μ°μλ κ΅³μ΄ μ¬μ©ν νμκ° μλ€.
rect() ν¨μλ νλ‘― μμ λ΄λΆμ μ’ν μμ μ¬κ°νμ λνμ κ·Έλ¦°λ€. rect() ν¨μμ μ’νλ₯Ό μ§μ νλ μΈμλ λ€ κ°λ€. xleft μΈμλ μ¬κ°νμ μΌμͺ½ xμ’ν, ybottom μΈμλ μλμͺ½ yμ’ν, xright μΈμλ μ€λ₯Έμͺ½ xμ’ν, ytop μΈμλ μμͺ½ yμ’νλ₯Ό λνλΈλ€. κ°κ°μ μΈμμλ μ€μΉΌλΌλ 벑ν°κ° μ¬ μ μλ€.
col μΈμλ μ¬κ°ν λ΄λΆμ μμμ μ§μ νκ³ border μΈμλ μ¬κ°ν ν
λ리 μμμ μ§μ νλ€. λ§μ½μ border μΈμλ₯Ό μ¬μ©νμ§ μμΌλ©΄ colμ μΈμ κ°μΌλ‘ ν
λ리μ μμμ΄ κ²°μ λλ€. density μΈμλ λ΄λΆλ₯Ό μ±μ°λ μ μ λ°λλ₯Ό λνλ΄λ©° 1μΈμΉλΉ μ μ κ°μλ₯Ό μλ―Ένλ€. angle μΈμλ λ΄λΆλ₯Ό μ±μΈ μ μ κΈ°μΈκΈ° κ°λλ₯Ό λ(degree) λ¨μλ‘ μ§μ νλλ°, κΈ°λ³Έ μ€μ κ°μ 45μ΄λ€. density μΈμμ κΈ°λ³Έ κ°μ NULLμΈλ°, μ΄ κ²½μ°μλ angle μΈμλ₯Ό μ¬μ©νλ κ²μ μλ―Έκ° μλ€. lty μΈμμ lwd μΈμλ ν
λ리μ μ μ 곡ν΅μΌλ‘ μ μ©λλ€.
op <- par(no.readonly = TRUE)
par(mar = c(0, 2, 2, 2))
plot(1:10, type = "n", main = "rect", xlab = "", ylab = "", axes = F)
rect(xleft = 1, ybottom = 7, xright = 3, ytop = 9)
text(2, 9.5, adj = 0.5, "default")
rect(1, 4, 3, 6, col = "gold")
text(2, 6.5, adj = 0.5, "col = \"gold\"")
rect(1, 1, 3, 3, border = "gold")
text(2, 3.5, adj = 0.5, "border = \"gold\"")
rect(4, 7, 6, 9, density = 10)
text(5, 9.5, adj = 0.5, "density = 10")
rect(4, 4, 6, 6, density = 10, angle = 315)
text(5, 6.5, adj = 0.5, "density = 10, angle = 315")
rect(4, 1, 6, 3, density = 25)
text(5, 3.5, adj = 0.5, "density = 25")
rect(7, 7, 9, 9, lwd = 2)
text(8, 9.5, adj = 0.5, "lwd = 2")
rect(7, 4, 9, 6, lty = 2)
text(8, 6.5, adj = 0.5, "lty = 2")
rect(7, 1, 9, 3, lty = 2, density = 10)
text(8, 3.5, adj = 0.5, "lty = 2, density = 10")
par(op)
polygon() ν¨μλ μ’ν μ λ€μ μ΄μ΄μ λ€κ°νμ 그리λ ν¨μλ€. μ’νλ₯Ό μ§μ νλ λ°©λ²μ plot() ν¨μμ κ°κ³ λλ¨Έμ§ μΈμλ€μ rect() ν¨μμ κ°λ€. λ¨μ§ rect() ν¨μκ° μ¬κ°νμ 그리λ λ°λ©΄μ polygon() ν¨μλ λ€μν λͺ¨μμ λ€κ°νμ 그릴 μ μλ μ λ§ λ€λ₯΄λ€.
μ’νλ₯Ό λνλ΄λ 벑ν°λ₯Ό μμλλ‘ μ°κ²°νκ³ λ§μ§λ§μ μ’νμμλ 첫 λ²μ§Έ μ’νμ μ°κ²°μ ν΄μ λ€κ°νμ λ§λ λ€. λ§μ½ μ μ κ°μκ° λ κ°μ΄λ©΄ λ¨μν μ λ§ κ·Έλ¦°λ€. μ λ€μ μ΄μ΄μ λ€κ°νμ λ§λ€κΈ° λλ¬Έμ κ²½μ°μ λ°λΌμλ λ€κ°νμ΄ λ³Όλ‘νκ² νμ΄λμ€λ λΆλΆλ μκ³ μ€λͺ©νκ² λ€μ΄κ° λΆλΆλ μκΈ°κ² λλ©°, μ λΆμ΄ κ΅μ°¨νλ λ€κ°νμ΄ λ§λ€μ΄μ§ μλ μλ€.
op <- par(no.readonly = TRUE)
par(mar = c(0, 2, 2, 2))
# μ λͺ¨μμ λ§λ€κΈ° μν΄ thetaλ₯Ό ꡬν¨
theta <- seq(-pi, pi, length = 12)
x <- cos(theta)
y <- sin(theta)
plot(1:6, type = "n", main = "polygon", xlab = "", ylab = "", axes = F)
# μ’ν μ΄λμ μν μμ
x1 <- x + 2
y1 <- y + 4.5
polygon(x1, y1)
x2 <- x + 2
y2 <- y + 2
polygon(x2, y2, col = "gold")
x3 <- x + 5
y3 <- y + 4.5
polygon(x3, y3, density = 10)
x4 <- x + 5
y4 <- y + 2
polygon(x4, y4, lty = 2, lwd = 2)
text(2, 5.7, adj = 0.5, "defalut")
text(2, 3.2, adj = 0.5, "col = \"gold\"")
text(5, 5.7, adj = 0.5, "density = 10")
text(5, 3.2, adj = 0.5, "lty = 2, lwd = 2")
par(op)
μ μ½λμμλ polygon() ν¨μλ₯Ό μ΄μ©ν΄μ μ μμΌκ°νμ λ§λ€μλ€. μΌκ° ν¨μμ κ°λλ₯Ό λνλ΄λ μμΉν λ²‘ν° thetaμ κΈΈμ΄κ° 12μ΄μ§λ§ -μ μ ν΄λΉνλ μ’νμ μ΄ κ²Ήμ³μ Έμ μμΌκ°νμ΄ λλ€. κ·Έλ¬λ―λ‘ lines() ν¨μλ₯Ό μ¬μ©ν΄λ λμΌν μμΌκ°νμ μ»μ μ μλ€. λ§μ½ seq() ν¨μμ length μΈμ κ°μ ν¬κ² ν΄μ μ’ν μ μ κ°μλ₯Ό λ리면, κ·Έ λ€κ°νμ μμ λͺ¨μμ κ°κΉμ μ§λ€.
λ¬Έμλ₯Ό 그리λ ν¨μμλ title() ν¨μ, text() ν¨μ, mtext() ν¨μ λ±μ΄ μλ€. μ΄λ€μ νλ‘―μ μ λͺ©, μΆμ λΌλ²¨λ₯Ό μΆλ ₯νκ±°λ νΉμ μμΉμ λ¬Έμμ΄λ‘ λΆμ° μ€λͺ λ±μ λνλ΄λ μ©λλ‘ μ¬μ©νλ€.
title() ν¨μλ ν¨μμ μ΄λ¦μ²λΌ νλ‘―μ νμ΄νμ μΆλ ₯νλ ν¨μλ€. μΆλ ₯ν μ μλ νμ΄νμ μ’ λ₯λ λ€ κ°λ‘ κ°κ°μ μΈμλ₯Ό μ§μ νμ¬ μΆλ ₯νλ€. μΈμμλ λ©μΈ νμ΄νμ μ μνλ main μΈμ, μλΈ νμ΄νμ μ§μ νλ sub μΈμ, xμΆμ μ΄λ¦μ μ§μ νλ xlab μΈμ, yμΆμ μ΄λ¦μ μ§μ νλ ylab μΈμκ° μλ€. κ°κ°μ μΈμκ°μΌλ‘λ λ¬Έμμ΄μ μ¬μ©νλ€. μ΄λ€ λ€ κ°μ μΈμλ νλμ title() ν¨μ μμμ μ¬μ©ν μλ μμΌλ©° κ°κ° κ°λ³ title() ν¨μλ‘ λλμ΄μ μ¬μ©ν μλ μλ€.
op <- par(no.readonly = TRUE)
par(mar = c(4, 4, 4, 4), oma = c(4, 0, 0, 0))
set.seed(2)
plot(rnorm(20), type = "o", xlab = "", ylab = "")
title(main = "Main title on line1", line = 1)
title(main = "Main title on line2", line = 2)
title(main = "Main title on line3", line = 3)
title(sub = "subtitle on line1", line = 1, outer = T)
title(sub = "subtitle on line2", line = 2, outer = T)
title(sub = "subtitle on line3", line = 3, outer = T)
title(xlab = "X label on line1", line = 1)
title(xlab = "X label on line2", line = 2)
title(xlab = "X label on line3", line = 3)
title(ylab = "Y label on line1", line = 1)
title(ylab = "Y label on line2", line = 2)
title(ylab = "Y label on line3", line = 3)
par(op)
λ©μΈ νμ΄νμ λ§μ§ 3μ μΆλ ₯λκ³ , μλΈ νμ΄νμ λ§μ§ 1μ μΆλ ₯λλ€. xμΆμ μ΄λ¦λ λ§μ§ 1μ μΆλ ₯λλ©°, yμΆμ μ΄λ¦μ λ§μ§ 2μ μΆλ ₯λλ€. line μΈμλ₯Ό μ¬μ©νμ¬ κ°κ° μμμμμ μμΉλ₯Ό μ§μ ν μ μλ€. outer μΈμλ κΈ°λ³Έ κ°μ΄ FALSE μΈλ°, TRUEλ‘ μ§μ νλ©΄ λ§μ§μ΄ μλ λ°κΉ₯ λ§μ§μ μΆλ ₯λλ€.
R κ·Έλνμ μμμ λ€μκ³Ό κ°λ€.
title() ν¨μλ κΈμμ μμ, ν¬κΈ°, λͺ¨μμ μ§μ ν μλ μμΌλ©° μμ λ¬Έμλ₯Ό μΆλ ₯ν μλ μλ€.
text() ν¨μλ νλ‘― μμμ μ’νμ λ¬Έμλ₯Ό μΆλ ₯νλ ν¨μλ€. μ’νλ x, yμ μΈμλ‘ μ§μ νλ©° labels μΈμμ μΆλ ₯ν λ¬Έμλ₯Ό μ§μ νλ€.
op <- par(no.readonly = TRUE)
par(mar = c(0, 0, 2, 0))
plot(1:10, 1:10, type = "n", xlab = "", ylab = "", main = "text")
text(1.5, 9, adj = 0, labels = "νΌνκ³ λΌμ€μ μ 리")
polygon(c(5, 3, 5), c(9, 7, 7))
polygon(c(5, 5, 4.8, 4.8), c(7, 7.2, 7.2, 7))
text(3.64, 8.36, adj = 0, labels = "c")
text(3.94, 6.67, adj = 0, labels = "a")
text(5.36, 7.95, adj = 0, labels = "b")
# example expression labels
text(1.5, 8, adj = 0, labels = expression(c^2 == a^2 + b^2))
text(1.5, 6, adj = 0, labels = expression(cos(r^2) * e^{-r/6}))
text(2, 3, adj = 0.3, labels = expression(z[i] == sqrt(x[i]^2 + y[i]^2)))
text(9, 4, adj = 1, labels = expression(f(x) == frac(1, sqrt((2 * pi)^n ~ ~det(Sigma[x]))) ~ ~exp * bgroup("(", -frac(1,2) ~ ~(x - mu)^T * Sigma[x]^-1 * (x - mu), ")")))
text(5, 5, adj = 0.5, labels = expression(y == bgroup("(", atop(a ~ ~b, c ~ ~d), ")")))
# Example position by pos
points(8, 8, pch = 16)
text(8, 8, "position1", pos = 1)
text(8, 8, "position2", pos = 2)
text(8, 8, "position3", pos = 3)
text(8, 8, "position4", pos = 4)
# Example offset
points(8, 6, pch = 16)
text(8, 6, "offset1", pos = 1, offset = 1)
text(8, 6, "offset2", pos = 2, offset = 1.5)
text(8, 6, "offset3", pos = 3, offset = 2)
text(8, 6, "offset4", pos = 4, offset = 2.5)
# Example adj by adj(x,y)
text(4, 2, "at(4,2) left/top by adj = c(0,0)", adj = c(0, 0))
text(4, 1.5, "at(4,2) center/bottom by adj = c(0.5, 1)", adj = c(0.5, +1))
text(8, 3, "at(8,3) right/middle by adj = c(1,0.5)", adj = c(1, 0.5))
par(op)
adj μΈμλ λ¬Έμμ΄μ μ λ ¬ λ°©μμ μ§μ νλ€. 0λΆν° 1κΉμ§μ κ°μ κ°μ§ μ μλλ° 0μ μΌμͺ½ μ λ ¬, 1μ μ€λ₯Έμͺ½ μ λ ¬, 0.5λ κ°μ΄λ° μ λ ¬μ μλ―Ένλ€. 0.3, 0.7 λ±μ κ°μ μ¬μ©ν μλ μλ€. 0.3μ μΌμͺ½ μ λ ¬κ³Ό κ°μ΄λ° μ λ ¬μ νΌν©ν ννκ³ , 0.7μ μ€λ₯Έμͺ½ μ λ ¬κ³Ό κ°μ΄λ° μ λ ¬μ νΌν©ν ννλΌ ν μ μλ€. adj μΈμμ κΈΈμ΄κ° 2μΈ λ²‘ν°λ₯Ό μ¬μ©νλ©΄ (x,y)μ μ λ ¬μ΄ λλ€. μ¦ μμ xλ μΌμͺ½, κ°μ΄λ°, μ€λ₯Έμͺ½ λ± xμΆμ λν μ λ ¬μ΄κ³ , λ€μ yλ μ, μ€κ°, μλ λ± yμΆμ λν μ λ ¬μ μλ―Ένλ€. κ·Έλ¬λ―λ‘ adj μΈμλ μ’μ° μ λ ¬κ³Ό μν μ λ ¬μ λ κ°μ§ λ°©λ²μΌλ‘ μ¬μ©ν μ μλ μ
μ΄λ€.
labels μΈμμ μΆλ ₯ν λ¬Έμλ₯Ό μ
λ ₯νλ©΄ μ§μ ν μ’ν μ μ λ¬Έμκ° μΆλ ₯λλ€. λ§μ½ expression() ν¨μλ₯Ό μ¬μ©νλ©΄ μΌλ° λ¬Έμκ° μλ μμ λ¬Έμλ₯Ό μΆλ ₯ν μλ μλ€. κ·Έλ¬κΈ° μν΄μλ expression() ν¨μκ° μΈμν μ μλ λ¬Έλ²μΌλ‘ ννν΄μΌ νλ€.
pos μΈμλ μ§μ ν μ’ν μ μ κΈ°μ€μΌλ‘ μλ, μΌμͺ½, μ, μ€λ₯Έμͺ½μ μ μ μμΉλ₯Ό μ§μ νλ€. λ§μ§μ μ§μ ν λμ κΈ°λ³Έ κ°μ΄ κ°μμ 1, 2, 3, 4 μ€μ νλμ κ°μ μ·¨ν μ μλ€. pos μΈμλ adj μΈμμ μ μ¬νλ€.
offset μΈμλ pos μΈμμ ν¨κ» μ¬μ©νλ€. μ΄ κ°μ μ’νμμ pos λ°©ν₯μΌλ‘ μΌλ§λ λ¨μ΄μ Έμ λ¬Έμλ₯Ό μΆλ ₯ν μ§λ₯Ό μ€μ νλ μΈμλ€. κ·Έλ¬λ―λ‘ offset μΈμ νλλ§ μ¬μ©νλ κ²μ μλ―Έκ° μλ€.
mtext ν¨μλ λ§μ§μ΄λ λ°κΉ₯ λ§μ§μ λ¬Έμλ₯Ό μΆλ ₯νλ ν¨μλ€. side μΈμλ‘ μ¬λ°±μ μμΉλ₯Ό μ§μ νλ©° text μΈμμ μΆλ ₯ν λ¬Έμλ₯Ό μ§μ νλ€. title() ν¨μμ κΈ°λ₯λ©΄μμ μ μ¬νλ€. lineκ³Ό outer μΈμλ title() ν¨μμ λμΌν κΈ°λ₯μ νλ€.
op <- par(no.readonly = TRUE)
par(mar = c(4, 4, 4, 4), oma = c(4, 0, 0, 0))
set.seed(5)
plot(rnorm(20), type = "o", xlab = "", ylab= "")
mtext("Position3 on line1", line = 1)
mtext("Position3 on line2", side = 3, line = 2)
mtext("Position3 on line3", side = 3, line = 3)
mtext("Outer position1 on line1", side = 1, line = 1, outer = T)
mtext("Outer position1 on line2", side = 1, line = 2, outer = T)
mtext("Outer position1 on line3", side = 1, line = 3, outer = T)
mtext("Position1 on line1", side = 1, line = 1, adj = 0)
mtext("Position1 on line2", side = 1, line = 2, adj = 0.5)
mtext("Position1 on line3", side = 1, line = 3, adj = 1)
mtext("Position2 on line1", side = 2, line = 1, adj = 0)
mtext("Position2 on line2", side = 2, line = 2, adj = 0.5)
mtext("Position2 on line3", side = 2, line = 3, adj = 1)
mtext("at 0, Posion4 on line1", side = 4, line = 1, at = 0)
mtext("at 0, adj 0, Posion4 on line2", side = 4, line = 2, at = 0, adj = 0)
mtext("at 0, adj 1, Posion4 on line3", side = 4, line = 3, at = 0, adj = 1)
par(op)
adj μΈμλ λ§μ§ 1μ΄λ λ§μ§ 3, μ¦ μμ μλμ μ¬λ°±μμλ 0μ΄ μΌμͺ½, 1μ΄ μ€λ₯Έμͺ½ μ λ ¬μ μλ―Ένλ€. λ§μ§ 2μ΄λ λ§μ§ 4, μ¦ μΌμͺ½κ³Ό μ€λ₯Έμͺ½ μ¬λ°±μμλ 0μ΄ μλμͺ½, 1μ΄ μμͺ½ μ λ ¬μ μλ―Ένλ€. adj μΈμμ κΈ°λ³Έ κ°μ 0.5μ΄λ€. λν padj μΈμλ μλλ° μ΄ μΈμλ λ§μ§ 1μ΄λ λ§μ§ 3μμλ λμ΄μ λν μ λ ¬μ΄κ³ , λ§μ§ 2μ΄λ λ§μ§ 4μμλ μ’μ°μ λν μ λ ¬μ μλ―Ένλ μΈμλ€. at μΈμλ μ’ν κ°μ κΈ°μ€μΌλ‘ μ λ ¬μ μ§μ νλ€.