히스토그램은 막대 그래프와 유사하지만
연속형 변수의 분포를 나타낸다는 점에서 차이가 있다.
plotly 패키지에서는 히스토그램을 그리기 위해
add_trace()와 add_histogram() 함수를 제공한다.
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)
'R > plotly' 카테고리의 다른 글
R | plotly | Interactive Map(2) - 지도 시각화(선) (0) | 2023.02.07 |
---|---|
R | plotly | Interactive Map(1) - 지도 시각화(점, 밀도) (0) | 2023.02.07 |
R | plotly | Pie chart - 원 그래프 (0) | 2023.02.03 |
R | plotly | Line Plot - 선 그래프 (1) | 2023.02.02 |
R | plotly | Bubble Chart - 버블 차트 (0) | 2023.02.01 |