프랑스 국기와 오륜기 색상코드 이용 시각화(feat. 2024 파리올림픽)

오륜기 색상코드 이용 시각화 그림
( R로 그려낸 오륜기와 프랑스 국기 )

2024년 7월 26일부터 8월 11일 일정의 파리올림픽 기념으로 오륜기와 프랑스 국기 그리는 방법을 소개하려 합니다. 오륜기 색상코드는 #0057B8(Blue), #FFA300(Yellow), #000000(Black), #009B3A(Green), #EF3340(Red) 입니다. 이 색상코드를 이용하여 Life2.0 테리와 함께 R의 ggplot2 패키지를 통해 그려보시죠.

오륜기와 프랑스 국기

색상코드와 그 의미

프랑스 국기

오륜기 색상코드 - 프랑스 국기

프랑스 국기는 파란색(#002395), 하얀색(#FFFFFF), 빨간색(#ED2939) 세 가지 색으로 구성된 세로 줄무늬로 이루어져 있으며, “삼색기”라고도 불립니다. 각 색은 프랑스 혁명의 가치와 관련이 있습니다.

  • 파란색은 자유를 상징합니다. 프랑스 혁명 당시의 파리 민병대의 색에서 유래되었으며, 자유와 민주주의를 대표합니다.
  • 하얀색은 평등을 상징합니다. 이는 프랑스의 왕을 상징하는 색으로, 혁명 이후에는 모든 사람들의 평등을 의미하게 되었습니다.
  • 빨간색은 박애를 상징합니다. 프랑스 혁명 때의 혁명군의 색에서 유래되었으며, 형제애와 국민 간의 연대를 의미합니다.

오륜기 색상코드 (올림픽기)

오륜기 색상코드 - 오륜기 설명

오륜기는 올림픽을 상징하는 기로, 하얀 바탕에 다섯 개의 서로 연결된 고리로 구성되어 있습니다. 이 고리들은 파란색, 노란색, 검은색, 초록색, 빨간색입니다. 오륜기는 전 세계의 스포츠맨십과 연대를 나타내며, 올림픽의 이념인 “더 빠르게, 더 높이, 더 강하게”를 반영합니다.

  • 이 다섯 개의 고리는 다섯 개의 대륙을 상징합니다. 구체적으로는 아프리카, 아시아, 유럽, 아메리카, 오세아니아를 의미합니다.
  • 고리의 색상은 각 대륙의 특정 색을 지칭하지 않으며, 모든 국가의 국기에 최소한 하나의 색상이 포함되어 있는 색을 선택한 것입니다. 즉, 파란색(#0057B8), 노란색(#FFA300), 검은색(#000000), 초록색(#009B3A), 빨간색(#EF3340) 중 하나 이상의 색이 모든 국가의 국기에 존재합니다.
  • 하얀 바탕은 평화를 상징합니다. 올림픽의 정신인 평화와 화합을 의미합니다.

도형 위치와 색상

올림픽 오륜기와 프랑스 국기는 각각 독특한 색상과 배치를 가지고 있습니다. 이를 효과적으로 시각화하기 위해서는 각 도형의 위치와 색상을 정확히 지정하는 것이 중요합니다.

올림픽 오륜기는 파란색, 검은색, 빨간색, 노란색, 초록색의 다섯 개의 원으로 구성되어 있으며, 각 원은 일정한 간격으로 배치되어 있습니다. 프랑스 국기는 파란색, 하얀색, 빨간색의 세 가지 색으로 구성된 세로 줄무늬로 되어 있습니다. 이러한 구성을 데이터 시각화로 표현하기 위해 ggplot2 패키지를 사용할 것입니다.

R Code 설명

1. 패키지 로드

우선 필요한 패키지인 ggplot2와 grid를 로드합니다. ggplot2는 데이터 시각화를 위한 패키지이며, grid는 레이아웃을 제어하기 위해 사용됩니다.

library(ggplot2)
library(grid)

ggplot2는 데이터 프레임을 이용하여 다양한 시각화를 손쉽게 만들 수 있도록 해주는 R 패키지입니다. grid는 여러 그래픽 요소를 배치하고 레이아웃을 설정하는 데 유용한 도구입니다.

2. 올림픽 오륜기 그리기 함수

올림픽 오륜기를 그리기 위한 함수를 정의합니다. 다섯 개의 원을 각각의 색상으로 지정하고, 중심 좌표를 설정합니다.

# 올림픽 오륜기 그리기 함수
draw_olympic_flag <- function() {
# 올림픽 색상
olympic_colors <- c("#0057B8", "#000000", "#EF3340", "#FFA300", "#009B3A")

# 원 중심점 좌표 (실제 오륜기 기준)
centers <- data.frame(
x = c(-1.5, 0, 1.5, -0.75, 0.75),
y = c(0, 0, 0, -0.8, -0.8), # 노랑과 초록 원의 y 좌표를 -1에서 -0.8로 변경
color = olympic_colors
)

# ggplot으로 그리기
ggplot() +
geom_point(data = centers, aes(x=x, y=y, color=color), size=30, shape=1, stroke=5) +
scale_color_identity() +
coord_fixed(ratio = 1, xlim = c(-3, 3), ylim = c(-2, 1)) +
theme_void() +
theme(plot.background = element_rect(fill = "white", color = NA))
}

이 함수에서는 다섯 개의 색상과 각 원의 중심 좌표를 지정합니다. geom_point를 사용하여 원을 그리고, scale_color_identity를 사용하여 지정된 색상을 그대로 사용합니다. coord_fixed를 통해 비율을 고정하고, theme_void를 사용하여 배경과 축을 제거합니다.

  • geom_point: 원을 그리기 위한 함수로, 데이터 프레임의 각 행에 대해 점을 그립니다.
  • aes: aesthetic 매핑을 정의하는 함수로, x축과 y축의 좌표 및 색상을 지정합니다.
  • size: 원의 크기를 지정합니다.
  • shape: 점의 모양을 지정합니다. 여기서는 원으로 설정합니다.
  • stroke: 원의 테두리 두께를 지정합니다.
  • scale_color_identity: 색상 매핑을 그대로 사용합니다.
  • coord_fixed: x축과 y축의 비율을 고정합니다.
  • theme_void: 축과 배경을 제거하여 깔끔한 그래프를 만듭니다.

3. 프랑스 국기 그리기 함수

프랑스 국기를 그리기 위한 함수를 정의합니다. 파랑, 하양, 빨강 세 가지 색상을 지정하고, 세로 줄무늬를 설정합니다.

# 프랑스 국기 그리기 함수
draw_french_flag <- function() {
# 프랑스 국기 색상
french_colors <- c("#002395", "white", "#ED2939")

# 국기 비율
flag_ratio <- 2/3

# ggplot으로 그리기
ggplot() +
geom_rect(aes(xmin = 0, xmax = 1, ymin = 0, ymax = 1), fill = french_colors[2]) +
geom_rect(aes(xmin = 0, xmax = 1/3, ymin = 0, ymax = 1), fill = french_colors[1]) +
geom_rect(aes(xmin = 2/3, xmax = 1, ymin = 0, ymax = 1), fill = french_colors[3]) +
coord_fixed(ratio = flag_ratio) +
theme_void()
}

이 함수에서는 세 가지 색상과 각각의 사각형 좌표를 지정합니다. geom_rect를 사용하여 세로 줄무늬를 그리고, coord_fixed를 통해 비율을 고정합니다. theme_void를 사용하여 배경과 축을 제거합니다.

  • geom_rect: 사각형을 그리기 위한 함수로, xmin, xmax, ymin, ymax를 이용하여 사각형의 위치를 지정합니다.
  • fill: 사각형의 색상을 지정합니다.
  • coord_fixed: x축과 y축의 비율을 고정하여 프랑스 국기의 비율을 유지합니다.
  • theme_void: 축과 배경을 제거하여 깔끔한 그래프를 만듭니다.

4. 두 국기 그리기 함수

두 국기를 나란히 그리기 위한 함수를 정의합니다. grid.layout과 viewport를 사용하여 레이아웃을 설정합니다.

# 두 국기 그리기
plot_flags <- function() {
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))

print(draw_olympic_flag(), vp = viewport(layout.pos.row = 1, layout.pos.col = 1))
print(draw_french_flag(), vp = viewport(layout.pos.row = 1, layout.pos.col = 2))
}

이 함수에서는 새로운 페이지를 생성하고, 1행 2열의 레이아웃을 설정합니다. 각 뷰포트에 올림픽 오륜기와 프랑스 국기를 그립니다.

  • grid.newpage(): 새로운 페이지를 생성합니다.
  • pushViewport: 뷰포트를 설정하여 레이아웃을 지정합니다.
  • viewport(layout = grid.layout(1, 2)): 1행 2열의 레이아웃을 생성합니다.
  • print: 각각의 뷰포트에 그래프를 출력합니다.

5. 함수 실행

모든 함수를 실행하여 국기를 그립니다.

# 국기 그리기 실행
plot_flags()

일반적인 실수와 피하는 방법

시각화를 할 때 자주 발생하는 실수와 이를 피하는 방법에 대해 알아보겠습니다.

  1. 좌표와 색상의 불일치: 올림픽 오륜기처럼 특정한 위치와 색상이 중요한 시각화에서는 각 도형의 위치와 색상을 정확히 지정해야 합니다. 특히, 오륜기의 각 원의 중심 좌표를 정확히 설정하는 것이 중요합니다. 이를 위해 데이터 프레임을 사용하여 좌표와 색상을 명확히 정의합니다.
  2. 비율 유지: 프랑스 국기와 같은 비율이 중요한 시각화에서는 coord_fixed 함수를 사용하여 비율을 유지해야 합니다. 그렇지 않으면 국기의 비율이 왜곡될 수 있습니다.
  3. 테마 설정: 불필요한 축과 배경 요소를 제거하기 위해 theme_void를 사용합니다. 이는 시각화의 깔끔함을 유지하는 데 도움이 됩니다.

전체 코드 및 결과

전체 소스코드는 아래와 같습니다.

library(ggplot2)
library(grid)

# 올림픽 오륜기 그리기 함수
draw_olympic_flag <- function() {
olympic_colors <- c("#0057B8", "#000000", "#EF3340", "#FFA300", "#009B3A")
centers <- data.frame(
x = c(-1.5, 0, 1.5, -0.75, 0.75),
y = c(0, 0, 0, -0.8, -0.8),
color = olympic_colors
)
ggplot() +
geom_point(data = centers, aes(x=x, y=y, color=color), size=30, shape=1, stroke=5) +
scale_color_identity() +
coord_fixed(ratio = 1, xlim = c(-3, 3), ylim = c(-2, 1)) +
theme_void() +
theme(plot.background = element_rect(fill = "white", color = NA))
}

# 프랑스 국기 그리기 함수
draw_french_flag <- function() {
french_colors <- c("#002395", "white", "#ED2939")
flag_ratio <- 2/3
ggplot() +
geom_rect(aes(xmin = 0, xmax = 1, ymin = 0, ymax = 1), fill = french_colors[2]) +
geom_rect(aes(xmin = 0, xmax = 1/3, ymin = 0, ymax = 1), fill = french_colors[1]) +
geom_rect(aes(xmin = 2/3, xmax = 1, ymin = 0, ymax = 1), fill = french_colors[3]) +
coord_fixed(ratio = flag_ratio) +
theme_void()
}

# 두 국기 그리기
plot_flags <- function() {
grid.newpage()
pushViewport(viewport(layout = grid.layout(1, 2)))
print(draw_olympic_flag(), vp = viewport(layout.pos.row = 1, layout.pos.col = 1))
print(draw_french_flag(), vp = viewport(layout.pos.row = 1, layout.pos.col = 2))
}

# 국기 그리기 실행
plot_flags()

이 코드를 실행하면 올림픽 오륜기와 프랑스 국기가 나란히 그려집니다. 각 국기는 정확한 색상과 비율로 시각화되어 있으며, theme_void를 사용하여 깔끔한 결과를 제공합니다.

파리올림픽 기념 R코딩 마무리

오륜기 색상코드 포스트 - 2024 파리올림픽 로고 그림
( 출처: STEPHANE DE SAKUTIN/AFP via Getty Images )

2024년 파리 올림픽을 맞아, ggplot2를 통해 올림픽 오륜기와 프랑스 국기를 그리는 과정을 살펴보았습니다. 데이터 시각화는 데이터를 이해하고 전달하는 데 매우 중요한 도구입니다. 계속해서 다양한 시각화 기법을 배우싶으시면 R로 복잡한 관계도 디자인 하기(feat. DiagrammeR)포스트를 클릭해보세요!

오늘도 R 활용역량을 올려드리기 위해서 노력하는 Life2.0: IT Playground에 테리였습니다. 혹시 R이 뭔지 모르는데 한번 사용을 해볼까 하는 분은 R, RStudio 설치하기 – 윈도우 기준포스트를 참고하세요!

유사한 게시물