새소식

R/plotly

R | plotly | Histogram - 히스토그램

  • -

 

 

히스토그램은 막대 그래프와 유사하지만

연속형 변수의 분포를 나타낸다는 점에서 차이가 있다. 

 

plotly 패키지에서는 히스토그램을 그리기 위해

add_trace()add_histogram() 함수를 제공한다. 

 

plotly_histogram.html
4.64MB

 


00. 패키지 로드 및 데이터 불러오기

## 패키지 로드 
library(dplyr)
library(plotly)

library(showtext)
### 한글 폰트 설정 
font_add_google("Nanum Gothic", "nanumgothic")


## 데이터 불러오기 : 크론병 데이터 
df <- read.csv("https://vincentarelbundock.github.io/Rdatasets/csv/robustbase/CrohnD.csv")
data.1 <- df[-1]
data.1 %>% head()

 


 

01. 기본 히스토그램

 

- 히스토그램을 그리기 위해선 x or y축에 연속형 변수를 매핑한 후 , 

  type = 'histogram'을 지정하면 된다. 

plot_ly(data.1,x=~BMI,
        type='histogram') %>%  
  
        layout(title = "크론병 환자의 BMI 분포",
               font=list(family ='nanumgothic'),
               xaxis = list(zeroline = F), 
               yaxis = list(zeroline = F), 
               margin = list(l=10, r=20, b=10, t=30, pad=0))

 

 


 

02.  두 개 이상의 변수의 히스토그램

 

- 두 개 이상의 변수 분포를 보기 위해서는 layout 속성인 barmode를 'overlay' 또는 'stack'으로 설정하면 된다. 

 

1) barmode = 'overlay'

· 크론병 환자의 BMI와 weight의 분포를 동시에 확인

plot_ly(alpha = 0.6) %>% 
  
  add_trace(data = data.1,x=~BMI,
        type='histogram',
        name = 'BMI') %>%  
  
  add_trace(data = data.1,x=~age,
        type='histogram',
        name = 'weight') %>% 
  
       layout(barmode = 'overlay',
               title = "크론병 환자의 BMI와 age 분포",
               font=list(family ='nanumgothic'),
               xaxis = list(title = '', zeroline = F), 
               yaxis = list(zeroline = F), 
               margin = list(l=10, r=20, b=10, t=30, pad=0))

 

 

2) barmode = 'stack'

· 크론병 환자의 성별에 따른 BMI 분포를 누적 히스토그램으로 표현 

plot_ly(alpha = 0.6) %>% 
  
  add_trace(data = data.1,
            color = ~sex, x=~BMI,
            type='histogram') %>%  
  
       layout(barmode = 'stack',
               title = "크론병 환자의 성별에 따른 BMI 분포",
               font=list(family ='nanumgothic'),
               xaxis = list(title ='',zeroline = F), 
               yaxis = list(zeroline = F), 
               margin = list(l=10, r=20, b=10, t=30, pad=0))

 

 

 

 

 

 

 

 

 


참고 문헌(reference)

 

 

 

Contents