정보
-
업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 산포도
-
작성자 : 박진만
-
작성일 : 2020-04-03
-
설 명 :
-
수정이력 :
내용
[개요]
-
R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통계 분석 환경입니다.
-
통계 분석 기능으로 통계 검정, 선형 회귀 분석, 시계열 데이터 분석, 클러스터링 등을 지원하고 있습니다.
-
또한 최신 논문에서 발표된 같은 새로운 기술도 R로 구현되는 경우가 많습니다.
-
특히 시각화 기능으로 히스토그램, 막대 그래프, 선 그래프, 산포도, 나무 모양 그림이나 히트맵 등 기본적인 그래프가 기본으로 지원하고 있습니다.
-
또한 ggplot2 등의 패키지를 사용하여 더 높은 수준의 그림을 가시화할 수 있습니다.
[특징]
-
데이터를 이해하기 위해서 통계 분석 및 데이터 시각화가 요구되며 이 프로그램은 이러한 목적을 달성하기 위한 소프트웨어
[기능]
-
데이터형 소개
[활용 자료]
-
없음
[자료 처리 방안 및 활용 분석 기법]
-
없음
[사용법]
-
소스 코드 예시 참조
[사용 OS]
-
Windows 10
[사용 언어]
-
R v3.6.2
-
R Studio v1.2.5033
소스 코드
[산포도] point 함수 이용한 분산형 차트 그리기
-
분산형 차트는 데이터에 직접 plot을주고 points함수를 사용하여 그릴 수 있다.
-
다음 예제에서는 두 그룹의 데이터를 1 장의 이미지에 그리기 위해 먼저 plot함수에서 빈 이미지를 만들고 points함수를 두 번 사용하여 2 그룹의 데이터를 그려 추가하는 샘플 코드이다.
x1 <- rnorm(6000, 10, 2)
y1 <- rnorm(6000, 15, 4)
x2 <- rnorm(4000, 20, 3)
y2 <- rnorm(4000, 25, 4)
plot(0, 0, type = "n", xlim = c(0, max(x1, x2)), ylim = c(0, max(y1, y2)),xlab = "x", ylab = "y")
points(x1, y1, col = "darkgrey", pch = 1)
points(x2, y2, col = "orange", pch = 3)
legend("bottomright", legend = c("Group 1", "Group 2"), pch = c(1, 3), col = c("darkgrey", "orange"))
[산포도] 투명도 주기
-
points함수에서 산점도를 만들 때 마커의 투명도를 지정하는 것으로, 플롯된 포인트의 농담을 설정할 수 있다.
-
예를 들어, 투명도 50% 일 때, 거기에 데이터가 하나만 플롯되어 있는 경우 반투명하게 보일 것이다.
-
그러나 동일한 영역에 여러 값을 플로팅되어 있다면, 투명도 50 %의 마커가 여러 겹치는 때문에 그만큼 진해지게 된다.
-
투명도와 색상은 RGB 형식으로 색상과 투명도를 동시에 지정할 수있다.
-
예를 들어 "# FF0000"은 적색을 나타내지만, 그 뒤에 16 진수를 붙이게 되면 ( "# FF000020"), 색과 투명도 정보가 같이 들어가게 된다.
x1 <- rnorm(6000, 10, 2)
y1 <- rnorm(6000, 15, 4)
x2 <- rnorm(4000, 20, 3)
y2 <- rnorm(4000, 25, 4)
plot(0, 0, type = "n", xlim = c(0, max(x1, x2)), ylim = c(0, max(y1, y2)),xlab = "x", ylab = "y")
points(x1, y1, col = "#30303020", pch = 1) # grey (#303030) + transparency 32% (20)
points(x2, y2, col = "#ff990020", pch = 3) # orange (#ff9900) + transparency 32% (20)
legend("bottomright", legend = c("Group 1", "Group 2"), pch = c(1, 3), col = c("#303030", "#ff9900"))
-
densCols 함수에서 그라디언트 색상 팔레트를 생성하여 산점도를 그라데이션 컬러로 그릴 수도 있다.
x1 <- rnorm(6000, 10, 2)
y1 <- rnorm(6000, 15, 4)
x2 <- rnorm(4000, 20, 3)
y2 <- rnorm(4000, 25, 4)
col1 <- densCols(x1, y1, colramp = colorRampPalette(c("white", "darkgrey")))
col2 <- densCols(x2, y2, colramp = colorRampPalette(c("white", "orange", "red")))
plot(0, 0, type = "n", xlim = c(0, max(x1, x2)), ylim = c(0, max(y1, y2)),xlab = "x", ylab = "y")
points(x1, y1, col = col1, pch = 1)
points(x2, y2, col = col2, pch = 3)
legend("bottomright", legend = c("Group 1", "Group 2"), pch = c(1, 3), col = c("darkgrey", "orange"))
[산포도] 플롯 마커
-
플롯 마커의 모양은 pch인수로 지정한다. 그리고 플롯 마커는 숫자로 지정한다.
-
숫자와 플롯 마커의 모양은 다음과 같이 대응하고 있다.
par(mar = c(1, 1, 1, 1))
par(omr = c(1, 1, 1, 1))
plot(0, 0, type = "n", xlim = c(0, 11), ylim = c(0, 8), axes = F, xlab = "", ylab = "")
for (i in 1:10) points(i, 7, cex = 3, pch = i)
for (i in 1:10) text(i, 8, i)
for (i in 1:10) points(i, 4, cex = 3, pch = i+10)
for (i in 1:10) text(i, 5, i + 10)
for (i in 1:10) points(i, 1, cex = 3, pch = i+20)
for (i in 1:10) text(i, 2, i + 20)
-
또한 플롯 마커는 숫자 대신 문자로 대체 할 수도 있다.
plot(c(0, 0), xlim = c(0, 5), ylim = c(0, 6), type = "n")
x <- c(1, 2, 3, 4, 5)
y1 <- c(2, 4, 4, 5, 6)
y2 <- c(5, 2, 2, 4, 1)
y3 <- c(1, 1, 3, 2, 1)
lines(x, y1, col = "red")
points(x, y1, pch = 1, cex = 2, col = "red")
lines(x, y2, col = "blue")
points(x, y2, pch = as.character(x), cex = 2, col = "blue")
lines(x, y3, col = "green")
points(x, y3, pch = c("a", "b", "c", "d", "e"), cex = 2, col = "green")
[다음글]
[R] R을 이용한 통계 분석 및 데이터 시각화 : 입체 산포도
정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 입체 산포도 작성자 : 박진만 작성일 : 2020-03-24 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내지 통..
shlee1990.tistory.com
[이전글]
[R] R을 이용한 통계 분석 및 데이터 시각화 : 2차 이상의 추세선
정보 업무명 : R을 이용한 통계 분석 및 데이터 시각화 : 2차 이상의 추세선 작성자 : 박진만 작성일 : 2020-04-03 설 명 : 수정이력 : 내용 [개요] R은 통계 분석 및 시각화 등의 기능을 갖춘 프로그래밍 언어 내..
shlee1990.tistory.com
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'프로그래밍 언어 > R' 카테고리의 다른 글
[R] R을 이용한 통계 분석 및 데이터 시각화 : 히트맵 (0) | 2020.04.03 |
---|---|
[R] R을 이용한 통계 분석 및 데이터 시각화 : 입체 산포도 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 2차 이상의 추세선 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : bean 플롯 (0) | 2020.04.03 |
[R] R을 이용한 통계 분석 및 데이터 시각화 : 바이올릿플롯 (0) | 2020.04.03 |