πŸ“ˆ [R] 데이터 μ‹œκ°ν™” - 점, 선을 κ·Έλ¦¬λŠ” ν•¨μˆ˜

thisk336Β·2023λ…„ 8μ›” 7일
0

R

λͺ©λ‘ 보기
2/6
post-thumbnail

κ³ μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜

μ—¬λŸ¬ 가지 μ €μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜μ˜ κΈ°λŠ₯을 λͺ¨μ•„μ„œ ν•˜λ‚˜μ˜ μ™„μ„±λœ ν”Œλ‘―μ„ κ·Έλ¦¬λŠ” ν•¨μˆ˜λ₯Ό λ§Œλ“œλŠ”λ°, μ΄λŸ¬ν•œ ν•¨μˆ˜λ₯Ό κ³ μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜λΌκ³  ν•œλ‹€.

plot() ν•¨μˆ˜

κ°€μž₯ λŒ€ν‘œμ μΈ κ³ μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜μ΄λ‹€. 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 인수의 값을 μ •λ¦¬ν•˜λ©΄ λ‹€μŒκ³Ό κ°™λ‹€.

  • p : 점
  • l : μ„ 
  • b : 점과 μ„ 
  • c : bμ˜΅μ…˜μ—μ„œ 점이 빠진 λͺ¨μŠ΅
  • o : 겹친 점과 μ„ 
  • h : μˆ˜μ§μ„ 
  • s : μˆ˜ν‰μ„  μš°μ„ μ˜ 계단λͺ¨μ–‘
  • S : μˆ˜μ§μ„  μš°μ„ μ˜ 계단λͺ¨μ–‘
  • n : 좜λ ₯ν•˜μ§€ μ•ŠμŒ

main μΈμˆ˜λŠ” ν”Œλ‘―μ— 메인 타이틀을 λ§Œλ“€μ–΄ μ€€λ‹€.

μ €μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜

μ €μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜μ—λŠ” κ·Έλž˜ν”½ μž₯치의 기본적인 ν™˜κ²½μ„ μ„€μ •ν•˜λŠ” par() ν•¨μˆ˜λ₯Ό λΉ„λ‘―ν•΄μ„œ 점, μ„ , λ©΄, 문자, μ’Œν‘œμΆ•, λ²”λ‘€λ₯Ό λ§Œλ“œλŠ” ν•¨μˆ˜ λ“± 일일이 μ—΄κ±°ν•˜κΈ° νž˜λ“€ μ •λ„λ‘œ λ§Žμ€ 것이 μžˆλ‹€. par() ν•¨μˆ˜λ₯Ό μ œμ™Έν•œ 이듀 ν•¨μˆ˜λŠ” κ³ μˆ˜μ€€ κ·Έλž˜ν”½ ν•¨μˆ˜λ₯Ό μ΄μš©ν•΄μ„œ κ·Έλ € 놓은 ν”Œλ‘― μœ„μ—μ„œ λ™μž‘ν•˜λ©°, 점을 μ°κ±°λ‚˜ 제λͺ©μ„ μž…λ ₯ν•˜λŠ” λ“±μ˜ κ·Έλž˜ν”½ 꾸밈 μž‘μ—…μ„ ν•œλ‹€.

점을 μ°λŠ” ν•¨μˆ˜

points() ν•¨μˆ˜

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() ν•¨μˆ˜

abline() ν•¨μˆ˜λŠ” μ§κ΅μ’Œν‘œμ— 직선을 κ·Έλ¦¬λŠ” ν•¨μˆ˜λ‘œ, 인수의 μ’…λ₯˜λ³„λ‘œ λ‹€μŒκ³Ό 같이 λ‹€μ„― 가지 λ°©λ²•μœΌλ‘œ 직선을 κ·Έλ¦°λ‹€.

  • a,b 인수 : y = a + bx λ°©μ •μ‹μ˜ 직선을 κ·Έλ¦°λ‹€. 즉, 기울기 b와 절편 aλ₯Ό κ°–λŠ” 직선을 κ·Έλ¦°λ‹€.
  • h 인수 : xμΆ•κ³Ό ν‰ν–‰ν•˜κ³ , y의 값이 h인 κ°€λ‘œ 직선을 κ·Έλ¦°λ‹€.
  • v 인수 : yμΆ•κ³Ό ν‰ν–‰ν•˜κ³ , x의 값이 v인 μ„Έλ‘œ 직선을 κ·Έλ¦°λ‹€.
  • coef 인수 : κΈ°μšΈκΈ°μ™€ 절편이 ν¬ν•¨λœ 수치 λ²‘ν„°λ‘œ 직선을 κ·Έλ¦°λ‹€. ν†΅μƒμ μœΌλ‘œ μ„ ν˜•νšŒκ·€λͺ¨ν˜•μ˜ κ³„μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€.
  • reg 인수 : μ„ ν˜•νšŒκ·€λͺ¨ν˜•μ„ μ μš©ν•œ lm 객체둜 직선을 κ·Έλ¦°λ‹€.
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() ν•¨μˆ˜

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"λŠ” 선이 μ—†μŒμ„ μ˜λ―Έν•˜κ³ , λ‚˜λ¨Έμ§€ μ—¬μ„― κ°œλŠ” μ •μˆ˜λ‘œ μ§€μ •ν•œ 것과 λ™μΌν•˜λ‹€. 즉 λ‹€μŒκ³Ό 같은 관계가 μ„±λ¦½ν•œλ‹€.

  • "solid" = 1
  • "dashed" = 2
  • "dotted" = 3
  • "dotdash" = 4
  • "longdash" = 5
  • "twodash" = 6

μ„Έ 번째 방법은 μ‚¬μš©μžκ°€ μž„μ˜μ˜ νŒ¨ν„΄μœΌλ‘œ μ„  λͺ¨μ–‘을 μ •μ˜ν•˜λŠ” 방법이닀. 이 방법은 λ‹€μŒκ³Ό 같은 두 가지 μœ ν˜•μœΌλ‘œ λ‚˜λˆŒμˆ˜ μžˆλ‹€.

  • lty = "BW"
  • lty = "BWBW"

인수 κ°’μ—μ„œ 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() ν•¨μˆ˜

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() ν•¨μˆ˜

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() ν•¨μˆ˜λŠ” μ„Έ 개의 꺾은선을 κ·Έλ¦°λ‹€.

0개의 λŒ“κΈ€