R-Blogger블로그·해설한국어2024-12-22
ggplot2로 Seigaha 모티프 만들기
Seigaiha 青海波 🌊 Seigaiha(青海波)는 문자 그대로 “청록색 바다 파도”로 번역되며, 직물, 도자기, 기모노, 예술 등에서 자주 사용되는 고전 일본 패턴입니다. 이 패턴은 동심원으로 이루어진 아치를 형상화한 파도 모양을 특징으로 하며, 행운의 물결을 상징한다고 알려져 있습니다. 기본 개념 각 글자와 의미는 다음과 같습니다. 青 = Blue 海 = Ocean 波 = Wave 이제 R과 ggplot2, ggforce, cowplot 패키지를 활용하여 이 고전적 디자인을 프로그램적으로 재현하는 과정을 소개합니다. 코드 예시 필요한 라이브러리를 불러오는 부분입니다. library(tidyverse) # Easily Install and Load the 'Tidyverse' library(ggforce) # Accelerating 'ggplot2' library(cowplot) # Streamlined Plot Theme and Plot Annotations for 'ggplot2' library(gt) # Easily Create Presentation-Ready Display Tables 이후 데이터 전처리를 수행합니다. annotater 패키지를 사용하면 스크립트에 주석을 쉽게 추가할 수 있어, 향후 협업 시 매우 유용합니다. col10 %>% mutate(y_odd = (y %% 2 == 1)) %>% mutate(idx = row_number() - 1) %>% mutate(x = if_else(y_odd, x + 1, x)) 원 크기 확장 원들의 반경은 5단계로 다르게 설정됩니다. 랜덤성을 넣을 수도 있지만, 현재는 일정하게 유지하고 있습니다. r_values %>% head() %>% gt() Seigaiha 모티프 그리기 geom_circle 함수를 사용하여 그리드 위에 원을 겹쳐 그립니다. 채움 색은 조정된 반경(r_var)에 따라 색상 그라데이션이 적용됩니다. df_long %>% arrange(-y, idx, desc(r)) %>% ggplot() + geom_circle(aes( x0 = x, y0 = y, r = r, fill = r_var ## just wanted to give bit of variance ), linewidth = 0.1, color = "#fffff3de", linetype = 3) + coord_fixed(clip = "on", xlim = c(-15, 14.5), ylim = c(-9, 9)) + theme_nothing() + scale_fill_gradientn(colors = col10_pal) + scale_color_gradientn(colors = col10_pal) 마무리 터치 cowplot의 theme_nothing()을 이용해 축, 레이블 등 불필요한 시각 요소를 모두 제거했습니다. xlim과 ylim을 조정해 불필요한 원을 잘라내어 깔끔한 모티프만 남기게 했습니다. 이와 같은 과정을 통해 Seigaiha 모티프를 R 코드만으로도 손쉽게 재현할 수 있음을 확인하였습니다. 여러분도 비슷한 방식을 활용해 자신만의 전통적 디자인을 시각화해 보시기 바랍니다.
원문 URL
전체 글은 원문 페이지에서 이어서 읽을 수 있습니다.
- 작성자
- R-Blogger
- 출처
- R-Blogger
- 플랫폼
- R-Blogger
- 분류
- 블로그·해설
- 언어
- 한국어
- 발행일
- 2024-12-22