pl_part2_ch4

Layout

데이터 불러오기

df_취업률_500 <- readRDS("df_취업률_500.rds")
df_취업률 <- readRDS( "df_취업률.rds")
df_covid19 <- readRDS("df_covid19.rds")
df_covid19_100 <- readRDS("df_covid19_100.rds")
df_covid19_100_wide <- readRDS("df_covid19_100_wide.rds")
df_covid19_stat <- readRDS("df_covid19_stat.rds")
library(plotly)
Loading required package: ggplot2

Attaching package: 'plotly'
The following object is masked from 'package:ggplot2':

    last_plot
The following object is masked from 'package:stats':

    filter
The following object is masked from 'package:graphics':

    layout
R_layout_scatter <- df_취업률_500 |>
  filter(졸업자수 < 500) |>
  plot_ly() |>
  add_trace(type = 'scatter', mode = 'markers',
            x = ~졸업자수, y = ~취업자수) |>
  ## title 속성의 설정
  layout(title = list(text = '<b>졸업자 대비 취업자수</b>',
                      x = 0.5, xanchor = 'center', yanchor = 'top')) ##x축 위치는 중간 0.5

R_layout_scatter

html tag 사용

R_layout_scatter |>
  ## title의 HTML inline 설정
  layout(title = list(text = "<span style = 'font-size:15pt'><span style = 'color:red;font-weight:bold;'> 졸업자</span><span style = 'font-size:10pt'> 대비</span><span style = 'color:blue;font-weight:bold;'>취업자</span></span>", x = 0.5, xanchor = 'center', yanchor = 'top'))

색 설정

R_layout_scatter <- R_layout_scatter |>
  ## 페이퍼 배경색과 플롯 배경색의 설정, rgb()도 사용 가능
  layout(paper_bgcolor = 'lightpink', plot_bgcolor = 'lightgray')

R_layout_scatter

축 설정

R_layout_scatter <- R_layout_scatter |>
  layout(xaxis = list(
         title = list(text = '<b>학과 졸업자수</b><sub>(명)</sub>'), ## 정상적 방법
         color = 'black', zerolinecolor = 'black', zerolinewidth = 3,
         gridcolor = 'gray', gridwidth = 1),
         yaxis = list(
         title = '<b>학과 취업자수</b><sub>(명)</sub>',
         color = 'black', zerolinecolor = 'black', zerolinewidth = 3,
         gridcolor = 'gray', gridwidth = 1) ## 약식 방법
         )
R_layout_scatter

눈금 라벨, 눈금 간격 설정

R_layout_scatter <- R_layout_scatter |>
  layout(xaxis = list(
    tickmode = 'array', ## tickmode를 "array"로 설정
    ticktext = c('소규모', '중규모', '대규모'), ## ticktext 설정
    tickvals = c(100, 300, 400)), ## tickvals 설정
    yaxis = list(
      tickmode = 'linear', ## tickmode를 "linear"로 설정
      tick0 = 100, ## tick0 설정, 시작점 
      dtick = 100)) ## dtick 설정, 간격
R_layout_scatter

축 범위 설정

R_layout_scatter |>
  layout(xaxis = list(range = c(0, 350), ## X축의 range 설정
                      rangemode = 'nonnegative'), ## X축의 rangemode 설정
         yaxis = list(range = c(0, 300), ## Y축의 range 설정
                      rangemode = 'tozero'), ## Y축의 rangemode 설정, p80 설명 
         margin = list(pad = 5))

범례 설정

## 초기화 및 한국 확진자 선 scatter 트레이스 생성
R_layout_line <- df_covid19_100_wide |>
  plot_ly() |>
  add_trace(type = 'scatter', mode = 'lines',
            x = ~date, y = ~확진자_한국, name = '한국')

## 아시아 확진자 선 scatter 트레이스 추가
R_layout_line <- R_layout_line |>
  add_trace(type = 'scatter', mode = 'lines',
            x = ~date, y = ~확진자_아시아, name = '아시아', showlegend = FALSE)

## 유럽 확진자 선 scatter 트레이스 추가
R_layout_line <- R_layout_line |>
  add_trace(type = 'scatter', mode = 'lines',
            x = ~date, y = ~확진자_유럽, name = '유럽')

## 북미 확진자 선 scatter 트레이스 추가
R_layout_line <- R_layout_line |>
  add_trace(type = 'scatter', mode = 'lines',
            x = ~date, y = ~확진자_북미, name = '북미')

## 범례 layout 설정
R_layout_line <- R_layout_line |>
  layout(title = list(text = '<b>대륙별 신규 확진자수 추이</b>',
                      x = 0.5, xanchor = 'center', yanchor = 'top'),
         legend = list(orientation = 'v', bordercolor = 'gray', borderwidth = 2,
                       x = 0.95, y = 0.95, xanchor = 'right')
  )

R_layout_line

여백 설정

R_layout_line <- R_layout_line |>
  ## 여백 설정
  layout(margin = list(t = 50, b = 25, l = 25, r = 25))

R_layout_line

플롯 크기 설정

R_layout_scatter |>
  ## 플롯 사이즈 설정, 작동하지 않음 
  layout(width = 450, height = 700) ## Specifying width/height in layout() is now deprecated.Please specify in ggplotly() or plot_ly()
Warning: Specifying width/height in layout() is now deprecated.
Please specify in ggplotly() or plot_ly()

폰트 설정

R_layout_line <- R_layout_line |>
  ## 폰트 설정
  layout(font = list(family = "Nanum Gothic", color = 'MidnightBlue', size = 12))

R_layout_line