정보
-
업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 선 그래프
-
작성자 : 박진만
-
작성일 : 2020-04-04
-
설 명 :
-
수정이력 :
내용
[개요]
-
R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다.
-
통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.
-
또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.
-
특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.
-
또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.
[특징]
-
데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
데이터형 소개
[활용 자료]
-
없음
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 예시 참조
[사용 OS]
-
Windows 10
[사용 언어]
-
R v3.6.2
-
R Studio v1.2.5033
소스 코드
[선 그래프]
-
선을 그릴 때 lines함수를 이용하면 편리하다.
-
plot함수를 이용하여 레이아웃을 그리고, lines함수에서 선 그래프를 그린다. 먼저 다음과 같은 샘플 데이터를 준비한다.
x <- data.frame(
ColdTreat = c(2.2, 2.1, 2.0, 2.0, 1.8, 1.9, 1.8, 1.5),
WarmTreat = c(2.1, 2.2, 2.3, 2.5, 2.6, 2.6, 2.8, 3.0),
Control = c(2.0, 2.1, 2.0, 2.2, 2.1, 2.2, 2.0, 2.1)
)
head(x)
## ColdTreat WarmTreat Control
## 1 2.2 2.1 2.0
## 2 2.1 2.2 2.1
## 3 2.0 2.3 2.0
## 4 2.0 2.5 2.2
## 5 1.8 2.6 2.1
## 6 1.9 2.6 2.2
-
그리고 그래프를 그린다.
xrange <- 1:nrow(x)
plot(0, 0, type = "n", xlim = range(xrange), ylim = range(0, x), xlab = "time", ylab = "weight")
cols <- c("black", "red", "blue")
ltys <- c("solid", "dotted", "dashed")
for (i in 1:ncol(x)) {
lines(xrange, x[, i], col = cols[i], lty = ltys[i])
}
legend("bottomleft", legend = colnames(x), col = cols, lty = ltys)
[오류바 정의]
-
선 그래프를 그릴 때 각 점에서 표준 편차를 계산할 수 있다.
-
위 표준 편차를 오류 바로 평균 선 그래프로 쓰고 추가 할 수 있다.
-
아래의 코드는 ColdTreat, WarmTreat, Control의 3 군 각각 3 개의 복제 실험이 행해졌다고 가정하고, 선 및 오류 막대를 그리는 방법을 보여준다.
cold.treat <- data.frame(
bio.rep.1 = c(2.2, 2.1, 2.0, 2.0, 1.8, 1.9, 1.8, 1.5),
bio.rep.2 = c(2.1, 2.1, 1.9, 1.8, 1.7, 1.7, 1.5, 1.4),
bio.rep.3 = c(2.2, 2.0, 1.9, 1.9, 1.8, 1.7, 1.6, 1.5)
)
cold.treat <- data.frame(
bio.rep.1 = c(2.2, 2.1, 2.0, 2.0, 1.8, 1.9, 1.8, 1.5),
bio.rep.2 = c(2.1, 2.1, 1.9, 1.8, 1.7, 1.7, 1.5, 1.4),
bio.rep.3 = c(2.2, 2.0, 1.9, 1.9, 1.8, 1.7, 1.6, 1.5)
)
warm.treat <- data.frame(
bio.rep.1 = c(2.1, 2.2, 2.3, 2.5, 2.6, 2.6, 2.8, 3.0),
bio.rep.2 = c(2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 3.1),
bio.rep.3 = c(2.2, 2.3, 2.3, 2.4, 2.5, 2.6, 2.7, 3.0)
)
control <- data.frame(
bio.rep.1 = c(2.0, 2.1, 2.0, 2.2, 2.1, 2.2, 2.0, 2.1),
bio.rep.2 = c(2.2, 2.2, 2.1, 2.2, 2.1, 2.0, 2.1, 2.2),
bio.rep.3 = c(2.1, 2.1, 2.0, 2.1, 2.2, 2.1, 2.0, 2.1)
)
-
평균과 표준 편차를 계산한다.
x.mean <- data.frame(
ColdTreat = apply(cold.treat, 1, mean),
WarmTreat = apply(warm.treat, 1, mean),
Control = apply(control, 1, mean)
)
x.sd <- data.frame(
ColdTreat = apply(cold.treat, 1, sd),
WarmTreat = apply(warm.treat, 1, sd),
Control = apply(control, 1, sd)
)
-
평균과 표준 편차를 계산 한 후 평균값으로 선 그래프를 그린다. 이어 arrow함수에서 오류 막대를 추가한다.
xrange <- 1:nrow(x.mean)
plot(0, 0, type = "n", xlim = range(xrange), ylim = range(0, c(x.mean + x.sd, x.mean - x.sd)), xlab = "time", ylab = "weight")
cols <- c("black", "red", "blue")
ltys <- c("solid", "dotted", "dashed")
for (i in 1:ncol(x.mean)) {
lines(xrange, x.mean[, i], col = cols[i], lty = ltys[i])
arrows(xrange, x.mean[, i] - x.sd[, i], xrange, x.mean[, i] + x.sd[, i], code = 3, lwd = 1, col = cols[i], angle = 90, length = 0.05)
}
legend("bottomleft", legend = colnames(x.mean), col = cols, lty = ltys)
[속성 정의]
-
lines함수를 이용하여 꺾은 선 그래프를 그릴 때 선의 색, 두께 및 종류 등 col및 버튼 lty등의 옵션을 지정할 수 있다.
plot(c(0,0), xlim=c(0,10), ylim = c(0,8), type = "n")
text(5, 1, 'lwd = 1, lty = "solid", col="black"')
lines(c(1, 10), c(1, 1), lwd = 1 , lty = "solid", col = "black")
text(5, 2, 'lwd = 2, lty = "dashed", col = "red"')
lines(c(1, 10), c(2, 2), lwd = 2, lty = "dashed", col = "red")
text(5, 3, 'lwd = 3, lty = "longdash", col = "green"')
lines(c(1, 10), c(3, 3), lwd = 3, lty = "longdash", col = "green")
text(5, 4, 'lwd = 4, lty = "solid", col = "grey"')
lines(c(1, 10), c(4, 4), lwd = 4, lty = "solid", col = "blue")
text(5, 5, 'lwd = 3, lty = "dotdash", col = "blue"')
lines(c(1, 10), c(5, 5), lwd = 3, lty = "dotdash", col = "magenta")
text(5, 6, 'lwd = 2, lty = "twodash", col = "yellow"')
lines(c(1, 10), c(6, 6), lwd = 2, lty = "twodash", col = "yellow")
text(5, 7, 'lwd = 1, lty = "dotted", col = "magenta"')
lines(c(1, 10), c(7, 7), lwd = 1, lty = "dotted", col = "grey")
[다음글]
[이전글]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'프로그래밍 언어 > R' 카테고리의 다른 글
[R] R을 이용한 통계 분석 및 데이터 시각화 : 그래프를 그릴 때 사용하는 일반적인 옵션 (0) | 2020.04.05 |
---|---|
[R] R을 이용한 통계 분석 및 데이터 시각화 : RColorBrewer (0) | 2020.04.05 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 이중축 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 그래프 범례 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 그림으로 수식 표기 (2) | 2020.04.03 |
최근댓글