Hyun-min Jeong
정현민 & 나이테
Hyun-min Jeong
  • Blog (110)
    • 침엽수 도감 (7)
      • 은행나무과 Ginkgoaceae (0)
      • 소나무과 Pinaceae (7)
      • 남양삼나무과 Araucariaceae (0)
      • 나한송과 Podocarpaceae (0)
      • 금송과 Sciadopityaceae (0)
      • 측백나무과 Cupressaceae (0)
      • 주목과 Tacaceae (0)
    • 활엽수 도감(환공재) (4)
      • 굴피나무속(Platycarya) (0)
      • 밤나무속(Castanea) (0)
      • 잣밤나무속(Castanopsis) (0)
      • 참나무속 (0)
      • 느릅나무속(Ulmus) (0)
      • 느티나무속(Zelkova) (0)
      • 시무나무속(Hemiptelea) (1)
      • 팽나무속(Celtis) (0)
      • 뽕나무속(Morus) (0)
      • 닥나무속(Broussonetia) (0)
      • 꾸지뽕나무속(Cudrania) (0)
      • 자귀나무속(Albizzia) (0)
      • 주엽나무속(Gleditsia) (0)
      • 회화나무속(Sophora) (0)
      • 아까시나무속(Robinia) (0)
      • 다릅나무속(Maackia) (0)
      • 쉬나무속(Evodia) (0)
      • 황벽나무속(Phellodendron) (0)
      • 소태나무속(Picrasma) (0)
      • 가중나무속(Ailanthus) (0)
      • 참중나무속(Cedrela) (0)
      • 멀구슬나무속(Melia) (0)
      • 옻나무속(Rhus) (0)
      • 무환자나무속(Sapindus) (0)
      • 나도밤나무속(Meliosma) (0)
      • 헛개나무속(Hovenia) (0)
      • 망개나무속(Berchemia) (0)
      • 벽오동속(Firmiana) (0)
      • 이나무속(Idesia) (0)
      • 황칠나무속(Dendropanax) (0)
      • 음나무속(Kalopanax) (0)
      • 두릅나무속(Aralia) (0)
      • 이팝나무속(Chionanthus) (0)
      • 쥐똥나무속(Ligustrum) (0)
      • 물푸레나무속(Fraxinus) (0)
      • 오동나무속(Paulownia) (0)
      • 개오동속(Catalpa) (0)
    • 활엽수 도감(산공재) (2)
      • 소귀나무속(Myrica) (0)
      • 사시나무속(Populus) (0)
      • 버드나무속(Salix) (1)
      • 새양버들속(Chosenia) (0)
      • 중국굴피나무속(Pterocarya) (0)
      • 자작나무속(Betula) (0)
      • 오리나무속(Alnus) (0)
      • 서어나무속(Carpinus) (0)
      • 개암나무속(Corylus) (0)
      • 새우나무속(Ostrya) (0)
      • 너도밤나무속(Fagus) (0)
      • 푸조나무속(Aphananthe) (0)
      • 계수나무속(Cercidiphyllum) (0)
      • 목련속(Magnolia) (0)
      • 초령목속(Michelia) (0)
      • 튤립나무속(Liriodendron) (0)
      • 붓순나무속(Illicium) (0)
      • 녹나무속(Cinnamomum) (0)
      • 후박나무속(Machilus) (0)
      • 참식나무속(Neolitsea) (0)
      • 육박나무속(Lozoste) (0)
      • 두충나무속(Eucommia) (0)
      • 조록나무속(Distylium) (0)
      • 버즘나무속(Platnus) (0)
      • 조팝나무속(Spiraea) (0)
      • 산사나무속(Crataegus) (0)
      • 비파나무속(Eriobotrya) (0)
      • 사과속(Malus) (0)
      • 배나무속(Pyrus) (0)
      • 마가목속(Sorbus) (0)
      • 벚나무속(Prunus) (0)
      • 탱자나무속(Poncirus) (0)
      • 굴거리나무속(daphniphyllum) (0)
      • 옻나무속(Rhus) (0)
      • 감탕나무속(llex) (0)
      • 단풍나무속(Acer) (0)
      • 칠엽수속(Aesculus) (0)
      • 모감주나무속(Koelreuteria) (0)
      • 나도밤나무속(Meliosma) (0)
      • 갈매나무속(Rhamnus) (0)
      • 대추나무속(Zizyphus) (0)
      • 헛개나무속(Hovenia) (0)
      • 피나무속(Tilia) (1)
      • 동백나무속(Camellia) (0)
      • 사스레피나무속(Eurya) (0)
      • 배롱나무속(Largerstroemia) (0)
      • 식나무속(Acuba) (0)
      • 층층나무속(Cornus) (0)
      • 감나무속(Diospyros) (0)
      • 이팝나무속(Chionanthus) (0)
      • 쥐똥나무속(Ligustrum) (0)
    • 천연기념물 (3)
    • 전통 목조 건축 (14)
      • 궁궐건축 (4)
      • 사찰건축 (5)
      • 관아건축 (0)
      • 성곽건축 (1)
      • 서원향교건축 (0)
      • 민가건축 (1)
      • 동양 목조건축 (1)
      • 서양 목조건축 (0)
      • 문화재수리 (1)
    • 국립공원 (0)
      • 북한산국립공원 (0)
      • 설악산국립공원 (0)
      • 오대산국립공원 (0)
      • 치악산국립공원 (0)
      • 태백산국립공원 (0)
      • 소백산국립공원 (0)
      • 월악산국립공원 (0)
      • 속리산국립공원 (0)
      • 주왕산국립공원 (0)
      • 계룡산국립공원 (0)
      • 가야산국립공원 (0)
      • 덕유산국립공원 (0)
      • 경주국립공원 (0)
      • 지리산국립공원 (0)
      • 한라산국립공원 (0)
    • 세계유산 (1)
    • 목재문화 (10)
      • 나이테 뉴스 (3)
      • 목재문화 (1)
      • 목재유물 (1)
      • 목공놀이 (1)
      • 목공구 Tools (0)
    • 불교문화 (2)
    • 학술연구 (46)
      • 목재식별학 (4)
      • 침엽수 식별 (2)
      • 활엽수 식별 (1)
      • 연구활동 (0)
      • 연륜고고학 (4)
      • 연륜생태학 (1)
      • 연륜기후학 (4)
      • 방사성탄소연대 (4)
      • 보존과학 (1)
      • QGIS & Map (2)
      • R Coding (8)
      • Conference (1)
      • 학술지 (2)
      • 논문쓰는법 (1)
      • 연구장비 (2)
    • 행정 (3)
    • 일상이야기 (15)
      • Story (4)
      • 사진_눈꽃( Snow) (1)
반응형

블로그 메뉴

  • 침엽수재
  • 활엽수재(산공재)
  • 전통목조건축
  • About
  • Guestbook
  • EN

공지사항

인기 글

  • 연도계산법, BC AD, BCE CE, BP 기원전 기원후⋯
    2020.04.29
    연도계산법, BC AD, BCE CE, BP 기원전 기원후⋯
  • 국가 보조금 보조비목·보조세목별 산정기준
    2018.08.28
  • QGIS : 사용자 정의 좌표계, 국립공원 좌표 수정
    2020.11.04
  • 국가계약법 수의계약 금액 및 추정가격 정의
    2018.09.19
  • 목재와 수분, #수분이 얼마나 들어 있나?
    2018.01.26
    목재와 수분, #수분이 얼마나 들어 있나?

태그

  • 잣나무
  • 정이품송
  • 방사성탄소연대
  • 목재
  • 문화재돌봄
  • 수종분석
  • 연륜연대
  • 나이테
  • 목제유물
  • R
  • 연륜연대학
  • 연륜폭
  • 보호수
  • 소나무과
  • 연륜코어
  • tree-ring
  • 소나무속
  • 소나무
  • 천연기념물
  • Leaflet

최근 댓글

  • 첫째, 수다라장의 중인방 3점에서 최외각(가장 늦게 만들어⋯
    Hyun-min Jeong
  • 혹시 장판경전의 연륜연대학적 연도는 나와있나요?
    .....
  • "내가 가진 정보도 찾기 어렵다." 저도 그렇게 느낍니다⋯
    §§▒

최근 글

  • chatGPT 첫 만남
    2023.02.11
  • [ggplot2] 간트차트 만들기(연대기차트) Gantt/⋯
    2023.01.29
    [ggplot2] 간트차트 만들기(연대기차트) Gantt/⋯
  • 목재로 만든 놀라운 세계 10대 건물(2017년 기준)
    2023.01.01
    목재로 만든 놀라운 세계 10대 건물(2017년 기준)
  • 중국 명청 왕조의 황제무덤군 명효릉(明孝陵)
    2022.07.03
    중국 명청 왕조의 황제무덤군 명효릉(明孝陵)
  • 2022년 문화재돌봄사업 분임워크숍 강연 후기
    2022.07.03
    2022년 문화재돌봄사업 분임워크숍 강연 후기

티스토리

전체 방문자
43,590
오늘
5
어제
37

Hyunmin.org all rights reserved.

Powered By Tistory / Kakao.

Designed By hELLO·정상우.
Hyun-min Jeong

정현민 & 나이테

[ggplot2] 간트차트 만들기(연대기차트) Gantt/timeline chart
학술연구/R Coding

[ggplot2] 간트차트 만들기(연대기차트) Gantt/timeline chart

2023. 1. 29. 00:25
반응형

연륜연대분석 결과를 쉽게 표현하기 위해 새롭게 간트차트를 활용해서 그래프를 작성

 

그래프에서 표현하고자 항목은

1. 심변재 구분

2. 연륜수

3. 최외각연륜 표기

 

library(ggplot2)
library(ggalt)
library(dplyr)


setwd("c:/R/1400_R_Timeline/")

den <- read.csv("dendro.csv", stringsAsFactors=FALSE)

arrange(den, no) %>%
  mutate(name=factor(name, levels=c(" ", rev(name), "  "))) -> den
  
treerings <- function(x) {
  x <- sprintf("%d", round(x))
  x
}

gg <- ggplot()
gg <- gg + geom_segment(data=den, size=10, color="#D2691E",
                        aes(x=start_year, xend=end_year, y=name, yend=name))
gg <- gg + geom_segment(data=den, size=10, color="#FFDAB9",
                        aes(x=end_year-sap, xend=end_year, y=name, yend=name))
gg <- gg + geom_text(data=den, color="black", size=4, vjust=0.5, family="",
                     aes(x=end_year+2, y=name, label=treerings(end_year)))
gg <- gg + geom_text(data=den, color="black", size=4, vjust=0.5, family="",
                     aes(x=start_year-2, y=name, label=treerings(start_year)))
gg <- gg + geom_text(data=filter(den, sap<=1), color="black", size=4, vjust=0.5, family="",
                     aes(x=((end_year+start_year)/2), y=name, label=treerings(lengh)))
gg <- gg + geom_text(data=filter(den, sap>=1), color="black", size=4, vjust=0.5, family="",
                     aes(x=end_year-(sap/2), y=name, label=treerings(sap)))
gg <- gg + geom_text(data=filter(den, sap>=1), color="black", size=4, vjust=0.5, family="",
                     aes(x=((end_year-sap)/2), y=name, label=treerings(end_year-sap)))
gg <- gg + labs(x="Tree rings", y=NULL, subtitle="innermost ring ↔ outmost ring")
gg <- gg + theme_minimal()
gg <- gg + theme(axis.title.x = element_text(size=10,face='bold'))
gg <- gg + theme(plot.margin=margin(10,10,10,10))
gg <- gg + theme(plot.title=element_text(face="bold"))
gg <- gg + theme(plot.subtitle=element_text(face="bold", size=12, hjust = 0.5, margin=margin(b=2)))
gg <- gg + theme(plot.caption=element_text(size=7, margin=margin(t=12), color="#7a7d7e"))
gg

 

 

den <- read.csv("dendro3.csv", stringsAsFactors=FALSE)

arrange(den, no) %>%
  mutate(name=factor(name, levels=c(" ", rev(name), "  "))) -> den

treerings <- function(x) {
  x <- sprintf("%d", round(x))
  x
}

# double & triple bars

gg <- ggplot()
gg <- gg + geom_segment(data=den, size=5, color="#D2691E",
                        aes(x=start_year, xend=end_year, y=name, yend=name))
gg <- gg + geom_segment(data=den, size=5, color="#FFDAB9",
                        aes(x=end_year-sap, xend=end_year, y=name, yend=name))
gg <- gg + geom_text(data=den, color="black", size=3.5, vjust=0.3, family="",
                     aes(x=end_year+4, y=name, label=treerings(end_year)))
gg <- gg + geom_text(data=den, color="black", size=3.5, vjust=0.3, family="",
                     aes(x=start_year-5, y=name, label=treerings(start_year)))
gg <- gg + geom_text(data=filter(den, sap<=1), color="black", size=3.5, vjust=0.3, family="",
                     aes(x=((end_year+start_year)/2), y=name, label=treerings(lengh)))
gg <- gg + geom_text(data=filter(den, sap>=1), color="black", size=4, vjust=0.3, family="",
                     aes(x=end_year-(sap/2), y=name, label=treerings(sap)))
gg <- gg + geom_text(data=filter(den, sap>=1), color="black", size=4, vjust=0.3, family="",
                     aes(x=((end_year-sap)/2), y=name, label=treerings(end_year-sap)))
gg <- gg + geom_text(data=filter(den, mark=="★만재완성"), color="black", size=4, vjust=0.2, family="",
                     aes(x=end_year+17, y=name, label=mark))
gg <- gg + geom_text(data=filter(den, mark=="☆조재완성"), color="black", size=4, vjust=0.2, family="",
                     aes(x=end_year+17, y=name, label=mark))
gg <- gg + labs(x="Year", y=NULL, subtitle="innermost ring ↔ outmost ring")
gg <- gg + theme_minimal()
gg <- gg + theme(axis.title.x = element_text(size=10,face='bold'))
gg <- gg + theme(plot.margin=margin(10,50,10,10))
gg <- gg + theme(plot.title=element_text(face="bold"))
gg <- gg + theme(plot.subtitle=element_text(face="bold", size=12, hjust = 0.5, margin=margin(b=2)))
gg <- gg + theme(plot.caption=element_text(size=7, margin=margin(t=12), color="#7a7d7e"))
gg

 

참고사이트

https://rud.is/b/2016/06/16/your-data-vis-spidey-sense-the-need-for-a-robust-utility-belt/

반응형
저작자표시

'학술연구 > R Coding' 카테고리의 다른 글

R실습_지도 만들기(2)_마커  (0) 2022.03.02
R 실습_능동형 지도 제작 with OSM  (0) 2022.03.02
통계의 기본개념 #1, 자료와 변수 개념  (0) 2020.05.18
Hierarchical Clustering using R  (0) 2019.06.20
dplR 패키지 설치하기  (0) 2019.06.20
    '학술연구/R Coding' 카테고리의 다른 글
    • R실습_지도 만들기(2)_마커
    • R 실습_능동형 지도 제작 with OSM
    • 통계의 기본개념 #1, 자료와 변수 개념
    • Hierarchical Clustering using R
    ggplot2, R, 간트차트, 연대기, 연륜연대기, 타임라인, 타임테이블
    Hyun-min Jeong
    Hyun-min Jeong
    나무가 자라서 목재가 되고 목재를 다듬어 문화재가 된다. 이제 거꾸러 문화재에서 나무로 찾아가는 여정을 떠났다.
    댓글쓰기

    티스토리툴바