위키백과사전에서 대한민국의 대통령 목록 확인된 대통령 재임기간은 다음과 같다.
대통령 취임일과 종료일을 입력하고 시작일과 종료일을 날짜 자료형으로 변형시키게 되면 연산이 가능하다. 따라서 615선언 이후 즉, 노태우 대통령이후 대통령만 추려서 재임기간을 사람이 인식하는 일반적인 재임기간과 절대시간 기준으로 나눠본다. 그리고 나서 정렬을 해야 하는데 현재 interval
객체가 데이터프레임에 들어가면 정렬하는 기능은 지원되고 있지 않다. 따라서 다음과같은 표로 확인을 한다.
library(tidyverse)
library(lubridate)
library(gt)
tribble(~"이름", ~"시작일", ~"종료일",
president_dat <-"이승만", "1948-08-15", "1960-04-26",
"윤보선", "1960-08-02", "1962-03-23",
"박정희", "1963-12-17", "1979-10-26",
"최규하", "1979-12-06", "1980-08-16",
"전두환", "1980-09-01", "1988-02-24",
"노태우", "1988-02-25", "1993-02-24",
"김영삼", "1993-02-25", "1998-02-24",
"김대중", "1998-02-25", "2003-02-24",
"노무현", "2003-02-25", "2008-02-24",
"이명박", "2008-02-25", "2013-02-24",
"박근혜", "2013-02-25", "2016-12-09",
"문재인", "2017-05-10", "2022-05-09",
"ㅇㅇㅇ", "2022-05-10", "2027-05-09")
president_dat %>%
president_tbl <- mutate(`시작일` = lubridate::ymd(`시작일`),
`종료일` = lubridate::ymd(`종료일`)) %>%
filter(`종료일` > ymd("1988-06-15")) %>% # 노태우 대통령 이후 ~
mutate(`시작종료` = interval(`시작일`, `종료일`)) %>%
mutate(`재임기간` = as.period(`시작종료`)) %>% # 사람이 인지하는 시간
mutate(`재임일` = as.duration(`시작종료`) %>% seconds_to_period(.)) %>% # 절대적인 시간
mutate(`정렬키` = unclass(lubridate::int_length(`시작종료`))) %>%
select(-정렬키, -시작종료)
%>%
president_tbl mutate(재임일 = as.numeric(재임일, "days")) %>%
gt() %>%
tab_header(title = "대한민국 역대 대통령 재임기간") %>%
fmt_date(
columns = c(시작일, 종료일),
date_style = "iso"
%>%
) fmt_number(
columns = 재임일,
decimals = 0,
suffixing = FALSE
%>%
) tab_options(
heading.background.color = "#1E61B0", # R logo 파란색
heading.title.font.size = "20px",
column_labels.background.color = "#F7F7F7", # R logo 회색
column_labels.font.weight = "bold",
stub.background.color = "#ffffff",
stub.font.weight = "bold"
)
대한민국 역대 대통령 재임기간 | ||||
---|---|---|---|---|
이름 | 시작일 | 종료일 | 재임기간 | 재임일 |
노태우 | 1988-02-25 | 1993-02-24 | 4y 11m 30d 0H 0M 0S | 1,826 |
김영삼 | 1993-02-25 | 1998-02-24 | 4y 11m 30d 0H 0M 0S | 1,825 |
김대중 | 1998-02-25 | 2003-02-24 | 4y 11m 30d 0H 0M 0S | 1,825 |
노무현 | 2003-02-25 | 2008-02-24 | 4y 11m 30d 0H 0M 0S | 1,825 |
이명박 | 2008-02-25 | 2013-02-24 | 4y 11m 30d 0H 0M 0S | 1,826 |
박근혜 | 2013-02-25 | 2016-12-09 | 3y 9m 14d 0H 0M 0S | 1,383 |
문재인 | 2017-05-10 | 2022-05-09 | 4y 11m 29d 0H 0M 0S | 1,825 |
ㅇㅇㅇ | 2022-05-10 | 2027-05-09 | 4y 11m 29d 0H 0M 0S | 1,825 |
두번째로 총선과 지방선거를 넣고 재임기간동안 선거가 얼마나 많이 일어났는지 확인해보자. 위키백과사전, 대한민국의 선거에서 데이터를 받아 정리한다.
지방선거 시작된 이후 선거만 추출하고 재임기간 계산해서 반환하는 Helper 함수를 작성해서 각 대통령별로 해당 재임기간 있었던 선거를 개수한다.
# 1987년 이후 총선/대선/지선 선거일
tribble(~"선거", ~"선거일",
election_df <-"1987년 개헌 국민투표", "1987-10-27",
"제13대 대통령 선거", "1987-12-16",
"제13대 국회의원 선거", "1988-04-26",
"제14대 국회의원 선거", "1992-03-24",
"제14대 대통령 선거", "1992-12-18",
"제1회 지방선거", "1995-06-27",
"제15대 국회의원 선거", "1996-04-11",
"제15대 대통령 선거", "1997-12-18",
"제2회 지방선거", "1998-06-04",
"제16대 국회의원 선거", "2000-04-13",
"제3회 지방선거", "2002-06-13",
"제16대 대통령 선거", "2002-12-19",
"제17대 국회의원 선거", "2004-04-15",
"제4회 지방선거", "2006-05-31",
"제17대 대통령 선거", "2007-12-19",
"제18대 국회의원 선거", "2008-04-09",
"제5회 지방선거", "2010-06-02",
"제19대 국회의원 선거", "2012-04-11",
"제18대 대통령 선거", "2012-12-19",
"제6회 지방선거", "2014-06-04",
"제20대 국회의원 선거", "2016-04-13",
"제19대 대통령 선거", "2017-05-09",
"제7회 지방선거", "2018-06-13",
"제21대 국회의원 선거", "2020-04-15",
"제20대 대통령 선거", "2022-03-09",
"제8회 지방선거", "2022-06-01")
# 지방선거 시작된 이후 선거만 추출
election_df %>%
election_df <- mutate(`선거일` = ymd(`선거일`)) %>%
filter(`선거일` > ymd("1995-01-01"))
# 재임기간 계산해서 반환하는 Helper 함수
function(president_name) {
get_reign <- president_dat %>%
president_reign <- filter(`이름` == president_name) %>%
mutate(`시작일` = lubridate::ymd(`시작일`),
`종료일` = lubridate::ymd(`종료일`)) %>%
mutate(`시작종료` = interval(`시작일`, `종료일`)) %>%
pull(`시작종료`)
return(president_reign)
}
# get_reign("노무현")
# 선거일별 재임중인 대통령 여부
election_df %>%
(reign_election_df <- arrange(`선거일`) %>%
mutate(`김영삼` = `선거일` %within% get_reign("김영삼"),
`김대중` = `선거일` %within% get_reign("김대중"),
`노무현` = `선거일` %within% get_reign("노무현"),
`이명박` = `선거일` %within% get_reign("이명박"),
`박근혜` = `선거일` %within% get_reign("박근혜"),
`문재인` = `선거일` %within% get_reign("문재인")) )
# A tibble: 21 x 8
선거 선거일 김영삼 김대중 노무현 이명박 박근혜 문재인
<chr> <date> <lgl> <lgl> <lgl> <lgl> <lgl> <lgl>
1 제1회 지방선거 1995-06-27 TRUE FALSE FALSE FALSE FALSE FALSE
2 제15대 국회의원 선거 1996-04-11 TRUE FALSE FALSE FALSE FALSE FALSE
3 제15대 대통령 선거 1997-12-18 TRUE FALSE FALSE FALSE FALSE FALSE
4 제2회 지방선거 1998-06-04 FALSE TRUE FALSE FALSE FALSE FALSE
5 제16대 국회의원 선거 2000-04-13 FALSE TRUE FALSE FALSE FALSE FALSE
6 제3회 지방선거 2002-06-13 FALSE TRUE FALSE FALSE FALSE FALSE
7 제16대 대통령 선거 2002-12-19 FALSE TRUE FALSE FALSE FALSE FALSE
8 제17대 국회의원 선거 2004-04-15 FALSE FALSE TRUE FALSE FALSE FALSE
9 제4회 지방선거 2006-05-31 FALSE FALSE TRUE FALSE FALSE FALSE
10 제17대 대통령 선거 2007-12-19 FALSE FALSE TRUE FALSE FALSE FALSE
# ... with 11 more rows
# 대통령 재임 기간 중 선거횟수
%>%
reign_election_df select(-`선거`, -`선거일`) %>%
gather(`대통령`, `선거여부`) %>%
group_by(`대통령`) %>%
summarise(`선거횟수` = sum(`선거여부`)) %>%
arrange(-`선거횟수`) %>%
gt() %>%
tab_header(title = "재임기간 중 선거횟수") %>%
tab_options(
heading.background.color = "#1E61B0", # R logo 파란색
heading.title.font.size = "20px",
column_labels.background.color = "#F7F7F7", # R logo 회색
column_labels.font.weight = "bold",
stub.background.color = "#ffffff",
stub.font.weight = "bold"
)
재임기간 중 선거횟수 | |
---|---|
대통령 | 선거횟수 |
김대중 | 4 |
이명박 | 4 |
김영삼 | 3 |
노무현 | 3 |
문재인 | 3 |
박근혜 | 2 |
지난 대선은 여하튼 대통령에 대한 탄핵으로 이루어진 것이고, 민주당은 받을 만큼 받은 것이라고 볼 수 있다. 꾸준히 40% 대를 유지하고 있다는 것이 증거다. 양자대결이었던 18대 대선에 비해서 9-10% 정도 적은 것은 다자 구도로 갔으니까 그런 것으로 파악된다. 정의당과 안철수 당이 가져 간것(여기에는 보수층의 전임 박근혜 대통령 득표했던 것도 많이 포함됨)으로 보인다. 기타 무응답층은 10% 가량이 쪼개져서, 자유한국당과 국민의 당 그리고 바른정당이 적당히 나누어 가진 것이다. 문재인과 심상정이 거의 가져가지 못한 것은, 탄핵국면으로 보수층은 여론조사에서 매우 소극적으로 응답했다는 것으로 이해가능할 것으로 보인다. 문재인, 심상정 쪽은 여론조사에서도 적극적으로 응답했다는 것으로 보이며, 결국 5월 2일경 무응답 10% 가량은 대부분 보수표와 안칠수 후보에 대한 숨은표였다 해석이 유력하다.
library(tidyverse)
library(rvest)
library(lubridate)
Sys.setlocale("LC_ALL", "C")
read_html("https://ko.wikipedia.org/wiki/대한민국_제19대_대통령_선거") %>%
survey_dat <- html_nodes(xpath = '//*[@id="mw-content-text"]/div[1]/table[7]') %>%
html_table(fill = TRUE) %>%
.[[1]]
Sys.setlocale("LC_ALL", "Korean")
survey_dat %>%
survey_tbl <- ## 변수명 정제 -------------
janitor::clean_names(ascii = FALSE) %>%
slice(2:n()) %>%
# 조사날짜 날짜형 변수 변환 -------------
mutate(조사기간 = str_extract(조사_기간, pattern = "[0-9]{1,2}월\\s+[0-9]{1,2}")) %>%
separate(col = 조사기간, into = c("월", "일"), sep = "월", convert = TRUE) %>%
mutate(조사날짜 = make_date(year = 2017,
month = 월,
day = 일)) %>%
select(-조사_기간, -응답_인원, -월, -일) %>%
relocate(조사날짜, .after = 조사_기관) %>%
mutate(조사_기관 = str_extract(조사_기관, pattern = "[가-힣0-9\\s]+")) %>%
## 시각화를 위한 전처리
pivot_longer(cols = c(-조사_기관, -조사날짜), names_to = "후보", values_to = "지지율") %>%
mutate(지지율 = parse_number(지지율) / 100) %>%
## ggplot 색상 및 평균
mutate(후보 = factor(후보, levels = c("더불어민주당", "자유한국당", "국민의당", "바른정당", "정의당", "기타_무응답"))) %>%
group_by(조사날짜, 후보) %>%
summarise(지지율 = mean(지지율, na.rm = TRUE)) %>%
ungroup()
## 마지막 대선결과 지지율
survey_tbl %>%
last_obs <- filter(조사날짜 == max(조사날짜))
## 대선일과 최종 여론조사일 사이 대쉬선 작성
survey_tbl %>%
dashed_obs <- filter(조사날짜 == max(조사날짜) |
조사날짜 == ymd("2017-05-02"))
%>%
survey_tbl filter(조사날짜 != max(조사날짜)) %>%
ggplot(aes( x= 조사날짜, y = 지지율, color = 후보)) +
geom_line() +
geom_point() +
## 대쉬선 -------------
geom_line(data = dashed_obs, aes(x= 조사날짜, y=지지율), linetype = 3) +
## 최종 지지율 --------
geom_point(data = last_obs, aes(x= 조사날짜, y=지지율), size = 3) +
theme_bw(base_family = "NanumGothic") +
labs( x = "",
title = "제19대 대통령선거 여론조사와 결과",
subtitle = "2017년 4월 3일 ~ 5월 2일, 대선일(5월 9일)") +
scale_colour_manual(name="",
values=c(더불어민주당="#065ce8",
"#ff0000",
자유한국당="#07f91f",
국민의당="#00faff",
바른정당="#f2ee09",
정의당= "gray50")) +
기타_무응답 = scale_x_date(date_labels = "%m월 %d일")
ggsave(filename = "fig/presid_19_survey.png")
Sys.setlocale("LC_ALL", "C")
18_dat <- read_html("https://ko.wikipedia.org/wiki/대한민국_제18대_대통령_선거") %>%
survey_ html_nodes(xpath = '//*[@id="mw-content-text"]/div[1]/table[2]') %>%
html_table(fill = TRUE) %>%
.[[1]]
Sys.setlocale("LC_ALL", "Korean")
18_tbl <- survey_18_dat %>%
survey_ janitor::clean_names(ascii = FALSE) %>%
# 조사날짜 날짜형 변수 변환 -------------
mutate(조사기간 = str_remove(날짜, "일")) %>%
separate(col = 조사기간, into = c("월", "일"), sep = "월", convert = TRUE) %>%
mutate(조사날짜 = make_date(year = 2012,
month = 월,
day = 일)) %>%
select(-날짜, -월, -일) %>%
relocate(조사날짜, .after = 조사기관) %>%
mutate(조사기관 = str_extract(조사기관, pattern = "[^\\[]*")) %>%
add_row(조사기관 = "18대 대선", 조사날짜 = ymd("2012-12-19"), 박근혜 = 51.55, 문재인 = 48.02, 이정희 = NA, 강지원 = 0.17, 기타_무응답 = 100 - 51.55 - 48.02 -0.17) %>%
## 시각화를 위한 전처리
pivot_longer(cols = c(-조사기관, -조사날짜), names_to = "후보", values_to = "지지율") %>%
mutate(지지율 = ifelse(is.na(지지율), 0, 지지율/100)) %>%
## ggplot 색상 및 평균
mutate(후보 = factor(후보, levels = c("박근혜", "문재인", "이정희", "강지원", "기타_무응답"))) %>%
group_by(조사날짜, 후보) %>%
summarise(지지율 = mean(지지율, na.rm = TRUE)) %>%
ungroup()
## 마지막 대선결과 지지율
18_obs <- survey_18_tbl %>%
last_ filter(조사날짜 == max(조사날짜))
## 대선일과 최종 여론조사일 사이 대쉬선 작성
18_obs <- survey_18_tbl %>%
dashed_ filter(조사날짜 == max(조사날짜) |
조사날짜 == ymd("2012-12-13"))
18_tbl %>%
survey_ filter(조사날짜 != max(조사날짜)) %>%
ggplot(aes( x= 조사날짜, y = 지지율, color = 후보)) +
geom_line() +
geom_point() +
## 대쉬선 -------------
geom_line(data = dashed_18_obs, aes(x= 조사날짜, y=지지율), linetype = 3) +
## 최종 지지율 --------
geom_point(data = last_18_obs, aes(x= 조사날짜, y=지지율), size = 3) +
theme_bw(base_family = "NanumGothic") +
labs( x = "",
title = "제18대 대통령선거 여론조사와 결과",
subtitle = "2012년 11월 27일 ~ 12월 13일, 대선일(12월 19일)") +
scale_colour_manual(name="",
values=c(문재인="#065ce8",
"#ff0000",
박근혜="#ad03fc",
이정희="green",
강지원= "gray50")) +
기타_무응답 = scale_x_date(date_labels = "%m월 %d일") +
scale_y_continuous(labels = scales::label_percent(accuracy =1))
ggsave(filename = "fig/presid_18_survey.png")
Sys.setlocale("LC_ALL", "C")
17_dat <- read_html("https://ko.wikipedia.org/wiki/대한민국_제17대_대통령_선거") %>%
survey_ html_nodes(xpath = '//*[@id="mw-content-text"]/div[1]/table[3]') %>%
html_table(fill = TRUE) %>%
.[[1]]
Sys.setlocale("LC_ALL", "Korean")
17_tbl <- survey_17_dat %>%
survey_ janitor::clean_names(ascii = FALSE) %>%
# 조사날짜 날짜형 변수 변환 -------------
mutate(날짜 = str_extract(날짜, pattern = "[^\\[]*")) %>%
mutate(날짜 = str_remove(날짜, "일")) %>%
separate(col = 날짜, into = c("월", "일"), sep = "월", convert = TRUE) %>%
mutate(조사날짜 = make_date(year = 2007,
month = 월,
day = 일)) %>%
select(-비고, -월, -일) %>%
mutate(조사기관 = glue::glue("여론조사 {1:nrow(survey_17_dat)}")) %>%
relocate(c(조사기관, 조사날짜), .before = 이명박) %>%
add_row(조사기관 = "17대 대선", 조사날짜 = ymd("2007-12-19"), 이명박 = 48.67, 이회창 = 15.08, 정동영 = 26.15, 문국현 = 5.83, 권영길 = 3.02, 이인제 = 0.68, 모름_무응답 = 100 - 48.67 - 15.08 - 26.15 - 5.83 - 3.02 - 0.68 ) %>%
## 무응답 처리 --------
mutate(이회창 = zoo::na.locf(이회창, fromLast = TRUE),
ifelse(is.na(모름_무응답), 100 - 51.9 - 20.20 - 8.7 - 3.6 - 3.3, 모름_무응답)) %>%
모름_무응답 = ## 시각화를 위한 전처리
pivot_longer(cols = c(-조사기관, -조사날짜), names_to = "후보", values_to = "지지율") %>%
mutate(지지율 = ifelse(is.na(지지율), 0, 지지율/100)) %>%
## ggplot 색상 및 평균
mutate(후보 = factor(후보, levels = c("이명박", "이회창", "정동영", "문국현", "권영길", "이인제", "모름_무응답"))) %>%
group_by(조사날짜, 후보) %>%
summarise(지지율 = mean(지지율, na.rm = TRUE)) %>%
ungroup()
## 마지막 대선결과 지지율
17_obs <- survey_17_tbl %>%
last_ filter(조사날짜 == max(조사날짜))
## 대선일과 최종 여론조사일 사이 대쉬선 작성
17_obs <- survey_17_tbl %>%
dashed_ filter(조사날짜 == max(조사날짜) |
조사날짜 == ymd("2007-12-12"))
17_tbl %>%
survey_ filter(조사날짜 != max(조사날짜)) %>%
ggplot(aes( x= 조사날짜, y = 지지율, color = 후보)) +
geom_line() +
geom_point() +
## 대쉬선 -------------
geom_line(data = dashed_17_obs, aes(x= 조사날짜, y=지지율), linetype = 3) +
## 최종 지지율 --------
geom_point(data = last_17_obs, aes(x= 조사날짜, y=지지율), size = 3) +
theme_bw(base_family = "NanumGothic") +
labs( x = "",
title = "제17대 대통령선거 여론조사와 결과",
subtitle = "2007년 10월 16일 ~ 12월 12일, 대선일(12월 19일)") +
scale_colour_manual(name="",
values=c(정동영="#065ce8",
"#ff0000",
이명박="#ad03fc",
이회창="lightgreen",
문국현="lightgreen",
권영길="lightgreen",
이인제= "gray50")) +
모름_무응답 = scale_x_date(date_labels = "%m월 %d일") +
scale_y_continuous(labels = scales::label_percent(accuracy =1))
ggsave(filename = "fig/presid_17_survey.png")
Sys.setlocale("LC_ALL", "C")
16_dat <- read_html("https://ko.wikipedia.org/wiki/대한민국_제16대_대통령_선거") %>%
survey_ html_nodes(xpath = '//*[@id="mw-content-text"]/div[1]/table[2]') %>%
html_table(fill = TRUE) %>%
.[[1]]
Sys.setlocale("LC_ALL", "Korean")
16_tbl <- survey_16_dat %>%
survey_ janitor::clean_names(ascii = FALSE) %>%
# 조사날짜 날짜형 변수 변환 -------------
mutate(날짜 = str_extract(날짜, pattern = "[^\\[]*")) %>%
mutate(날짜 = ifelse(str_length(날짜) > 10, 날짜, glue::glue("2002년 {날짜}"))) %>%
mutate(조사날짜 = as.Date(날짜, format = "%Y년 %m월 %d일")) %>%
mutate(조사기관 = glue::glue("여론조사 {1:nrow(survey_16_dat)}")) %>%
relocate(c(조사기관, 조사날짜), .before = 이회창) %>%
rowwise() %>%
mutate(기타_무응답 = 100 - sum(c(이회창, 노무현, 정몽준, 이인제, 박근혜, 권영길, 이한동), na.rm = TRUE)) %>% ungroup() %>%
select(-비고, -날짜) %>%
add_row(조사기관 = "16대 대선", 조사날짜 = as.Date("2002년 12월 19일", format = "%Y년 %m월 %d일"), 노무현 = 48.91, 이회창 = 46.59, 권영길 = 3.90, 이한동 = 0.30, 기타_무응답 = 100 - 48.91 - 46.59 - 3.90 - 0.30 - 0.21 ) %>%
## 시각화를 위한 전처리
pivot_longer(cols = c(-조사기관, -조사날짜), names_to = "후보", values_to = "지지율") %>%
mutate(지지율 = ifelse(is.na(지지율), 0, 지지율/100)) %>%
## ggplot 색상 및 평균
mutate(후보 = factor(후보, levels = c("노무현", "이회창", "권영길", "정몽준", "이한동", "이인제", "박근혜", "기타_무응답"))) %>%
group_by(조사날짜, 후보) %>%
summarise(지지율 = mean(지지율, na.rm = TRUE)) %>%
ungroup()
## 마지막 대선결과 지지율
16_obs <- survey_16_tbl %>%
last_ filter(조사날짜 == max(조사날짜))
## 대선일과 최종 여론조사일 사이 대쉬선 작성
16_obs <- survey_16_tbl %>%
dashed_ filter(조사날짜 == max(조사날짜) |
조사날짜 == ymd("2002-12-15"))
16_tbl %>%
survey_ filter(조사날짜 != max(조사날짜)) %>%
ggplot(aes( x= 조사날짜, y = 지지율, color = 후보)) +
geom_line() +
geom_point() +
## 대쉬선 -------------
geom_line(data = dashed_16_obs, aes(x= 조사날짜, y=지지율), linetype = 3) +
## 최종 지지율 --------
geom_point(data = last_16_obs, aes(x= 조사날짜, y=지지율), size = 3) +
theme_bw(base_family = "NanumGothic") +
labs( x = "",
title = "제16대 대통령선거 여론조사와 결과",
subtitle = "2001년 12월 11일 ~ 2002년 12월 15일, 대선일(12월 19일)") +
scale_colour_manual(name="",
values=c(노무현="#065ce8",
"#ff0000",
이회창="#ad03fc",
권영길="lightblue",
정몽준="lightgreen",
이한동="lightgreen",
권영길="lightgreen",
이인제="lightgreen",
박근혜= "gray50")) +
기타_무응답 = scale_x_date(date_labels = "%m월 %d일") +
scale_y_continuous(labels = scales::label_percent(accuracy =1))
ggsave(filename = "fig/presid_16_survey.png")
YTN에서 제20대 대선 주요 일정을 시각화하여 보기 좋게 주요일정을 정리했다.
중앙선거관리위원회 제20대 대통령선거 주요사무일정이 담긴 한글파일을 참조해도 큰 도움이 될 수 있다. 하지만 직관적인 달력형태로 일정을 보는 것이 더욱 도움이 된다.
library(tidyverse)
::loadfonts()
extrafontlibrary(calendR)
library(lubridate)
## 시작일부터 완료일까지 총 기간 계산
# start_date <- lubridate::ymd("2021-07-01")
# end_date <- lubridate::ymd("2022-01-31")
# start_end_date <- lubridate::interval(start_date, end_date)
#
# total_interval <- as.duration(start_end_date) %>% seconds_to_period(.) %>% as.numeric("days")
# events <- rep(NA, total_interval + 28)
rep(NA, 28+31)
events <-
## 선거 주요 일정을 이벤트로 등록
# events[12] <- "2022/02/07 \n재외선거인명부 확정"
13:14] <- "2022/02/13~14 \n후보자등록신청"
events[15] <- "2022/02/15 \n선거기간 개시일"
events[23:28] <- "2022/02/23~28 \n재외투표소 투표"
events[28+4):(28+5)] <- "2022/03/04~5 \n사전투표소 투표"
events[(28+9)] <- "2022/03/09 \n선거일"
events[(
calendR::calendR(from = "2022-02-01", # 경선 시작일
presid_calendar_g <-to = "2022-03-31", # End date
mbg.col = 4,
months.col = "white",
months.pos = 0.5,
day.size = 5,
days.col = "black",
title = "제20대 대통령 선거 주요 일정", # 제목
start = "M", # 월요일 시작
font.family = "NanumBarunPen",
font.style = "plain",
weeknames = c("월", "화", "수", "목", "금", "토", "일"),
special.days = events,
special.col = c("#d7ff80", "#b5ff78", "#8099ff", "#8099ff", "#264aff"),
legend.pos = "bottom",
legend.title = "주요일정",
lty = 0,
gradient = FALSE) +
theme(strip.text.x = element_text(size = 13, colour = "black", family = "NanumMyeongjo", face="bold"),
strip.background=element_rect(fill="white"),
plot.title=element_text(size=20, face="bold", family = "NanumBarunpen"),
plot.subtitle=element_text(face="bold", size=13, colour="grey10", family = "NanumBarunpen"),
text = element_text(size=13))
%>%
presid_calendar_g ggsave(filename = "fig/presid_calendar_g.png")
presid_calendar_g
library(magick)
image_read(path = "fig/presid_calendar_g.png")
presid_calendar_img <- image_read(path = "fig/minju_bg.png")
minju_bg <-
presid_calendar_img %>%
president_cal_img <- image_composite(minju_bg, operator = "atop")
%>%
president_cal_img image_write("fig/president_cal_img.png")
데이터 과학자 이광춘 저작
kwangchun.lee.7@gmail.com