정보
-
업무명 : R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (facet_grid)
-
작성자 : 박진만
-
작성일 : 2020-04-07
-
설 명 :
-
수정이력 :
내용
[개요]
-
R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다.
-
통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.
-
또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.
-
특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.
-
또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.
[특징]
-
데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
데이터형 소개
[활용 자료]
-
없음
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 예시 참조
[사용 OS]
-
Windows 10
[사용 언어]
-
R v3.6.2
-
R Studio v1.2.5033
소스 코드
[facet_grid]
-
facet_grid 를 이용하여 여러 그래프를 하나의 플롯에 표시 할 수 있다.
-
아래의 코드는 샘플 데이터를 생성하여 여러 그래프를 그리는 예시이다.
library(reshape2)
library(ggplot2)
gene <- c("THC", "MAPKKKK", "GAL1", "ABA1")
time <- c("0 hr", "2 hr", "4 hr", "8 hr", "12 hr")
sampleA <- sampleB <- sampleC <- matrix(0, ncol = length(time), nrow = length(gene))
colnames(sampleA) <- colnames(sampleB) <- colnames(sampleC) <- time
rownames(sampleA) <- rownames(sampleB) <- rownames(sampleC) <- gene
for (i in 1:nrow(SampleA)) {
sampleA[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 100)
sampleB[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 200)
sampleC[i, ] <- rnorm(5, mean = c(1200, 1500, 1600, 1300, 1000), sd = 150)
}
sampleA
## 0 hr 2 hr 4 hr 8 hr 12 hr
## THC 1356.382 1449.591 1636.928 1351.249 1015.068
## MAPKKKK 1046.920 1455.879 1625.095 1297.037 1199.606
## GAL1 1147.616 1479.081 1500.792 1238.004 1056.606
## ABA1 1228.956 1521.725 1599.352 1254.185 1136.959
datA <- data.frame(smaple = "Sample A", melt(sampleA))
datB <- data.frame(smaple = "Sample B", melt(sampleB))
datC <- data.frame(smaple = "Sample C", melt(sampleC))
dat <- rbind(rbind(datA, datB), datC)
colnames(dat) <- c("Sample", "Gene", "Time", "FPKM")
head(dat)
## Sample Gene Time FPKM
## 1 Sample A THC 0 hr 1356.382
## 2 Sample A MAPKKKK 0 hr 1046.920
## 3 Sample A GAL1 0 hr 1147.616
## 4 Sample A ABA1 0 hr 1228.956
## 5 Sample A THC 2 hr 1449.591
## 6 Sample A MAPKKKK 2 hr 1455.879
-
다음으로 ggplot을 이용하여 그래프를 그려 나간다.
-
그 중에서 facet_grid함수를 이용하여 여러 그래프를 어떤 순서로 정렬할지의 여부를 지정한다.
-
예를 들어, 그래프는 행 Gene마다 열은 Time마다 플롯하고 싶으면 Gene ~ Time를 지정한다.
g <- ggplot(dat, aes(x = Sample, y = FPKM, fill = Sample))
g <- g + geom_bar(stat = "identity", postion = "dodge")
g <- g + facet_grid(Gene ~ Time, scales="free_y")
g <- g + theme(axis.text.x = element_text(angle = 90, hjust = 0.5))
g <- g + scale_fill_brewer(palette = "Set1")
plot(g)
[다음글]
[이전글]
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'프로그래밍 언어 > R' 카테고리의 다른 글
[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (유효숫자 표시) (0) | 2020.04.07 |
---|---|
[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (색과 채우기 지정) (0) | 2020.04.07 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (geom_histogram) (0) | 2020.04.07 |
[R] 코로나 19 자료 및 회귀 모형 (선형, 비선형)을 이용하여 대한민국 사망자 예측 및 가시화 (0) | 2020.04.07 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : ggplot2 (geom_tile) (0) | 2020.04.07 |
최근댓글