[R] 상자그림을 다채롭게 보여주는 "lvplot" 패키지

 정보

  • 업무명     : 상자그림을 다채롭게 보여주는 "lvplot" 패키지 소개

  • 작성자     : 박진만

  • 작성일     : 2020-03-03

  • 설   명      :

  • 수정이력 :

 

 내용

[특징]

  • 해당 패키지는 데이터 분포를 표현하는 하나의 수단으로 유용한 표현 방법.

  • 단독 사용 뿐 아니라 "ggplot2" 패키지와의 조합이 좋음 

 

 

[기능]

  • lvplot 패키지 소개

 

[활용 자료]

  • 없음

 

[자료 처리 방안 및 활용 분석 기법]

  • 없음

 

[사용법]

  • 소스 코드 예시 참조

 

[사용 OS]

  • Windows 10

 

[사용 언어]

  • R v3.6.2

  • R Studio v1.2.5033

 

 소스 코드

[명세]

  • 전역 설정

    • 최대 10 자리 설정

    • 메모리 해제

# Set Option
options(digits = 10)
memory.limit(size = 9999999999999)

 

  • 라이브러리 읽기

# Library Load
library(lvplot)

 

  • 일반 박스 plot 과 LVboxplot 과의 비교

    • LVboxplot 명령 수행 결과

# 일반 박스 plot 과 LVboxplot 과의 비교
par(mfrow=c(4,2), mar=c(3,3,3,3))
for (i in 1:4) {
  x <- rexp(10 ^ (i + 1))
  boxplot(x, col = "lightblue", horizontal = TRUE)
  title(paste("rexp, n = ", length(x)))
  LVboxplot(x, col = "lightblue", xlab = "")
}

 

 

  • 추가 라이브러리 로드 (ggplot2, scales)

# 추가 라이브러리 로드
library(ggplot2)
library(scales)

 

  • 플로팅을 위한 임의의 데이터 생성

PlotData <- NULL
for (i in 1:4) {
  
  EXPData <- cbind(i, rexp(10 ^ (i + 1)))
  PlotData <- rbind(PlotData, EXPData)
  
}
PlotData <- as.data.frame(PlotData)
head(PlotData)

 

  • 플로팅 수행

    • geom_lv 명령

####### 플로팅 수행 ##########
ggplot(PlotData, aes(PlotData[, 1], PlotData[, 2])) +
  geom_lv(aes(fill=..LV..)) +
  scale_fill_manual(values = seq_gradient_pal(c("#e1e6ea", "#505457", "#4b61ba", "#a87963",
                                                "#d9bb9c", "#756c6d", "#807765", "#ad8a80"))(seq(0, 1, length = 14))) +
  facet_wrap(~i)

 

 

[전체]

#install.packages("lvplot")
library(lvplot)


# 일반 박스 plot 과 LVboxplot 과의 비교
par(mfrow=c(4,2), mar=c(3,3,3,3))
for (i in 1:4) {
  x <- rexp(10 ^ (i + 1))
  boxplot(x, col = "lightblue", horizontal = TRUE)
  title(paste("rexp, n = ", length(x)))
  LVboxplot(x, col = "lightblue", xlab = "")
}

# 추가 라이브러리 로드
library(ggplot2)
library(scales)


### 플로팅을 위한 데이터 생성 #####
PlotData <- NULL
for (i in 1:4) {
  
  EXPData <- cbind(i, rexp(10 ^ (i + 1)))
  PlotData <- rbind(PlotData, EXPData)
  
}
PlotData <- as.data.frame(PlotData)
head(PlotData)

####### 플로팅 수행 ##########
ggplot(PlotData, aes(PlotData[, 1], PlotData[, 2])) +
  geom_lv(aes(fill=..LV..)) +
  scale_fill_manual(values = seq_gradient_pal(c("#e1e6ea", "#505457", "#4b61ba", "#a87963",
                                                "#d9bb9c", "#756c6d", "#807765", "#ad8a80"))(seq(0, 1, length = 14))) +
  facet_wrap(~i)

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com