정보
-
업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 막대그래프
-
작성자 : 박진만
-
작성일 : 2020-04-01
-
설 명 :
-
수정이력 :
내용
[개요]
-
R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다.
-
통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.
-
또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.
-
특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.
-
또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.
[특징]
-
데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
데이터형 소개
[활용 자료]
-
없음
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 예시 참조
[사용 OS]
-
Windows 10
[사용 언어]
-
R v3.6.2
-
R Studio v1.2.5033
소스 코드
[막대그래프]
-
막대 그래프는 주로 카테고리로 분류되는 데이터의 시각화에 이용된다.
-
R은 barplot함수를 이용하여 막대 그래프를 그릴 수 있다.
-
그리고 옵션 등을 제공함으로써 누적 막대 그래프 등을 그릴 수 있고, 또한 arrows함수를 이용하여 차트에 오차 막대를 겹쳐서 볼 수도 있다.
[막대그래프] 벡터 데이터
-
아래의 샘플 코드는 있는 상태 하에서 측정 된 5 개의 유전자 (a, b, c, d, e)의 발현 량 (logFPKM)를 막대 그래프로 그리는 예.시이다.
-
째, 유전자의 발현 량을 벡터 x에 할당한 다음 names함수에서 벡터 x의 각 요소에 이름을 붙인다.
x <- c(21.3, 22.5, 34.1, 12.9, 23.1)
names(x) <- c("a", "b", "c", "d", "e")
barplot(x, xlab = "gene", ylab = "logFPKM")
-
막대 그래프를 그릴 때, 항목의 이름이 긴 경우 이름이 가로축에 기록 될 때, 좌우의 라벨과 겹쳐 보이지 않게된다.
-
대책 방법으로 가로 축 레이블을 세로로 놓는 경우도 있다.
barplot(x, las = 2, xlab = "gene", ylab = "logFPKM")
[막대그래프] 비교 데이터
-
다음 예시 코드는 처리 전과 처리 후 측정 된 5 개의 유전자 (a, b, c, d, e)의 발현 량 (logFPKM)를 막대 그래프로 그리는 예시이다.
-
행렬을 준비하고, 첫 번째 열을 처리하기 전에 두 번째 처리 후로서 또 각 행을 유전자로 발현량 행렬을 준비한다.
-
다음 행렬의 행과 열에 이름을 붙이고, barplot함수 막대 그린다. 여러 항목이기 때문에 막대를 나란히 그리는 데 beside = TRUE이용하고 또한 항목 이름도 표시하기 위해 legend = TRUE를 이용하였다.
x <- cbind(c(21.3, 22.5, 34.1, 12.9, 23.1),
c(25.9, 26.1, 40.2, 13.1, 22.8))
colnames(x) <- c("control", "treatment")
rownames(x) <- c("a", "b", "c", "d", "e")
x
## control treatment
## a 21.3 25.9
## b 22.5 26.1
## c 34.1 40.2
## d 12.9 13.1
## e 23.1 22.8
barplot(x, beside = TRUE, legend = TRUE, xlab = "gene", ylab = "logFPKM")
-
행렬 x의 행과 열을 바꾸어 ( t함수) 그린 경우는 다음과 같다.
barplot(t(x), beside = TRUE, legend = TRUE, xlab = "gene", ylab = "logFPKM")
[막대그래프] 오류바 지정하기
-
예를들어 복제 실험이 행해진 경우, 그 평균을 막대 그래프의 높이, 표준 편차를 오류 바로 시각화 할 수있다.
-
차트에서 오차 막대를 덧붙일 때에는 먼저 데이터의 평균과 표준 편차를 계산하고 barplot함수에서 평균을 막대 그래프로 그려 그 위에 arrows함수에서 평균 ± 표준 편차의 오류를 그릴 수 있다.
-
다음 샘플 코드는 3 번 복제 실험에서 측정 한 5 개의 유전자의 발현 량을 막대 그래프로 그리고 있다.
-
막대 그래프를 그린 후 오류 막대를 그릴 때 세로축의 제한에 오차 막대의 위쪽 절반이 그려지지 않는 경우가 있다.
-
이를 피하기 위해 barplot에서 막대 그래프를 그릴 때 세로축을 평균 + 표준 편차의 최대 값이되도록 설정한다 ( ylim = c(0, max(xm + xs))).
x <- rbind(c(20.3, 22.5, 32.1, 12.9, 23.1),
c(21.4, 22.1, 34.2, 13.1, 22.8),
c(20.9, 23.3, 33.6, 12.3, 24.8))
colnames(x) <- c("a", "b", "c", "d", "e")
rownames(x) <- c("rep1", "rep2", "rep3")
x
## a b c d e
## rep1 20.3 22.5 32.1 12.9 23.1
## rep2 21.4 22.1 34.2 13.1 22.8
## rep3 20.9 23.3 33.6 12.3 24.8
xm <- apply(x, 2, mean)
xs <- apply(x, 2, sd)
# bar chart
b <- barplot(xm, xlab = "gene", ylab = "logFPKM", ylim = c(0, max(xm + xs)))
# error bar
arrows(b, xm - xs, b, xm + xs, code = 3, lwd = 1, angle = 90, length = 0.1)
[막대그래프] 누적 막대그래프
-
누적 막대 그래프의 예시는 아래와 같다.
x <- cbind(
c(1.0, 1.0, 1.2, 1.1),
c(1.7, 1.5, 1.5, 1.8),
c(2.0, 2.1, 2.2, 2.6),
c(2.7, 3.1, 3.2, 3.1),
c(4.2, 4.0, 4.6, 3.6)
)
colnames(x) <- c("a", "b", "c", "d", "e")
rownames(x) <- c("2016", "2017", "2018", "2019")
x
## a b c d e
## 2016 1.0 1.7 2.0 2.7 4.2
## 2017 1.0 1.5 2.1 3.1 4.0
## 2018 1.2 1.5 2.2 3.2 4.6
## 2019 1.1 1.8 2.6 3.1 3.6
barplot(t(x), legend = TRUE)
[다음글]
[이전글]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'프로그래밍 언어 > R' 카테고리의 다른 글
[R] R을 이용한 통계 분석 및 데이터 시각화 : Bee swarm plot (0) | 2020.04.03 |
---|---|
[R] R을 이용한 통계 분석 및 데이터 시각화 : 벤 다이어그램 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 히스토그램 (0) | 2020.04.02 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 수학 함수 그래프 (0) | 2020.04.01 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 예외처리 (0) | 2020.04.01 |
최근댓글