ggplot2로 기후 변화에 대한 인식 제고
지구 온난화는 예측이 아닙니다. 일어나고 있습니다.
제임스 한센
지구 온도가 상승하고 있다는 확실한 증거가 있습니다. 기후변화가 인류의 존재 자체를 위협하는 상황에서 이 중대한 문제를 이해하고 연구하고 인식을 높이는 노력이 그 어느 때보다 절실합니다.
당신이 학생이든, 정부에서 일하든, 비정부 기구 또는 사기업이든 관계없이 관련 글로벌 문제에 대한 당신의 참여를 동료들에게 보여주는 것이 중요합니다.
이 자습서에서는 신뢰할 수 있고 선별된 과거 온도 데이터를 찾고 ggplot2로 시각화하는 위치를 배웁니다. 이 게시물을 마치면 다음을 수행하게 됩니다.
- 과거 날씨 데이터가 포함된 선별된 데이터 세트를 찾을 위치를 알고 있습니다.
- ggplot2를 사용하여 과거 날씨 데이터를 편안하게 플로팅합니다.
- ggplot2 그래프를 사용자 지정하여 스토리를 전달할 수 있습니다.
이 자습서의 데이터는 NCEI(National Centers for Environmental Information) * 에서 사용할 수 있습니다 . NCEI는 미국의 환경 데이터에 대한 최고의 권위자이며 기후, 생태계 및 수자원에 대한 고품질 데이터를 제공합니다. GSOY(Global Summary of the Year) 데이터 세트는 도시 및 역별로 과거 날씨 데이터를 제공합니다. 이 자습서에서는 캘리포니아 버클리의 데이터를 사용합니다. 원하는 경우 원하는 도시를 선택할 수 있습니다. 이 자습서의 동일한 데이터 세트를 사용하려면 Berkeley를 검색하고 1893년 이후의 데이터가 포함된 파일을 선택합니다.
파일은 read_csv. 유일한 인수는 파일 경로입니다. 데이터 프레임을 로드한 직후 DATE및 TAVG변수만 선택합니다. DATE기온이 관측된 연도를 포함하며 TAVG섭씨로 표시된 연평균 기온입니다. 사용 가능한 변수에 대한 자세한 내용은 데이터 세트 코드북을 참조하십시오 .
library(readr)
library(dplyr)
df <- read_csv('USC00040693.csv') %>%
select("DATE", "TAVG")
summary(df)
2단계: na_interpolation()으로 누락된 값 대치
시계열로 작업하는 경우 선형 보간으로 누락된 값을 채울 것입니다. 이 방법은 누락된 기간 동안 데이터가 선형으로 변했다고 가정합니다. 실제로 선 도표를 사용하여 시계열을 도표화하면 관측치 사이의 간격도 두 점을 연결하는 직선으로 채워집니다.
선형 보간을 수행하기 위해 imputeTS 패키지를 사용합니다 . 라이브러리를 설치하고 로드한 후 na_interpolation()누락된 값을 채우는 데 사용할 수 있습니다. 두 개의 인수를 전달합니다. 첫째, 처리할 데이터 프레임 열, 둘째, 전가를 수행하는 데 사용할 방법입니다.
library(imputeTS)
df$TAVG <- na_interpolation(df$TAVG, option ="linear")
ggplot2 시각화는 레이어로 구성됩니다. 아래 그림과 같이 각 레이어에는 하나의 기하 객체, 즉 그래프에서 볼 수 있는 하나의 요소(예: 선 및 점)가 포함됩니다.
먼저 함수에 데이터 세트를 전달해야 합니다 ggplot(). 둘째, 변수를 기하 물체 의 시각적 속성인 미학에 매핑합니다 . 미학은 예를 들어 y축의 위치, x축의 위치, 색상 또는 크기입니다. 아래에서는 플롯에 대한 흑백 ggplot2 테마도 설정했습니다. 다른 기하 객체를 추가하지 않으면 플롯에는 두 개의 축만 있습니다.
library(ggplot2)
theme_set(theme_bw())
axes <- ggplot(data = df, aes(x = DATE, y = TAVG))
axes
Image created by the author
axes +
geom_point()
Image created by the author
4단계: 플롯 사용자 지정
이 섹션에서는 플롯을 명확하고 유익하며 아름답게 만들기 위해 플롯을 사용자 정의하는 방법을 배웁니다.
TAVG먼저 온도 상승을 더 잘 보이게 하기 위해 점의 색상 미학 도 매핑합니다 . 숫자 변수이므로 ggplot2는 그라데이션을 사용하여 연속 값을 색상으로 나타냅니다. 기능으로 고온뿐만 아니라 저온을 나타내는 색상을 선택할 수 있습니다 scale_color_gradient().
또한 x 및 y축의 레이블을 각각 xlab()및 로 설정할 수 있습니다 ylab(). 로 제목을 추가할 수 있습니다 ggtitle(). 또한 점의 크기를 늘리고 투명도를 추가하여 중첩된 데이터가 보이도록 할 것입니다.
데이터 시각화 분야의 전문가인 Edward Tufte는 비중복 데이터를 표시하는 데 사용되는 잉크의 비율을 최대화할 것을 권장합니다. 저자는 그것이 줄거리를 더 명확하게 만들고 독자의 주의를 산만하게 하는 것을 방지한다고 주장합니다.
우리가 사용하고 있는 ggplot2 테마는 theme_bw()이미 Tufte의 권장 사항과 일치하지만 여전히 플롯의 패널 그리드를 제거할 수 있습니다. 이를 달성하려면 theme()함수를 사용하고 두 개의 인수를 전달 panel.grid.minor = element_blank()하십시오 panel.grid.major = element_blank().
5단계: 시각화를 위한 테마 만들기
이제 자신만의 ggplot2 테마를 만드는 방법을 배웁니다. 예를 들어 theme_tds().
먼저 Google 글꼴 "Source Serif Pro"를 로드합니다. Medium 기사에서 사용되는 글꼴입니다. 패키지 와 함께 쉽게 로드할 수 있습니다 showtext. 없으신 분들은 설치 부탁드립니다. 패키지를 설치했으면 로드하고 font_add_google()기능을 사용하여 "Source Serif Pro"를 로드합니다. showtext또한 with를 사용하여 텍스트를 렌더링하도록 R에 지시합니다.showtext_auto().
library(showtext)
font_add_google("Source Serif Pro")
showtext_auto()
theme()이제 그래프를 사용자 정의하는 데 사용할 것입니다 . 아래 그림은 사용할 수 있는 일부 인수를 보여줍니다. 전체 목록은 이 ggplot2 참조를 확인하십시오 .
theme()사용자 지정 사양을 포함하는 ggplot2 함수를 호출하는 함수로 새 테마를 만들 수 있습니다 . 흑백 테마( )에서 시작하여 그리드theme_bw 를 제거하고 배경, 패널 및 텍스트 색상을 변경합니다. 향후 변경을 용이하게 하기 위해 사용자가 원하는 텍스트, 패널 및 배경색을 지정할 수 있도록 두 개의 인수가 생성되었습니다.
theme_tds <- function(text_panel_color, background_color) {
theme_bw()+
theme(text=element_text(size=10,
family="Source Serif Pro",
color = text_panel_color),
# Eliminates grids
panel.grid.minor = element_blank(),
panel.grid.major = element_blank(),
# Changes panel, plot and legend background
panel.background = element_rect(fill = background_color),
plot.background = element_rect(fill = background_color),
legend.background = element_rect(fill= background_color),
# Changes legend texts color
legend.title = element_text(color = text_panel_color),
# Changes plot border color and size
panel.border = element_rect(size = 1, color = text_panel_color),
# Changes color of axis texts
axis.text.x = element_text(color = text_panel_color),
axis.text.y = element_text(color = text_panel_color),
axis.title.x = element_text(color= text_panel_color),
axis.title.y = element_text(color= text_panel_color),
# Changes axis ticks color
axis.ticks.y = element_line(color = text_panel_color),
axis.ticks.x = element_line(color = text_panel_color),
)
}
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+
geom_point(size = 4, alpha = 0.7)+
scale_color_gradient(name = "ºC", low = "#4F88EC", high = "#ec4f88")+
ggtitle("Historical air temperature trend in Berkeley, CA")+
xlab("Year")+
ylab("Annual Mean Temperature [ºC]")+
theme_tds(text_panel_color = "white",
background_color = "#252525")
Image created by the author
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+
geom_point(size = 4, alpha = 0.7)+
scale_color_gradient(name = "ºC", low = "#4F88EC", high = "#ec4f88")+
ggtitle("Historical air temperature trend in Berkeley, CA")+
xlab("Year")+
ylab("Annual Mean Temperature [ºC]")+
theme_tds(text_panel_color = "#365A77",
background_color = "white")
Image created by the author
ggplot(data = df, aes(x = DATE, y = TAVG, color = TAVG))+
geom_point(size = 4, alpha = 0.7)+
geom_smooth(color = "#365A77", se = FALSE)+
scale_color_gradient(name = "ºC", low = "#4F88EC", high = "#ec4f88")+
ggtitle("Historical air temperature trend in Berkeley, CA")+
xlab("Year")+
ylab("Annual Mean Temperature [ºC]")+
theme_tds(text_panel_color = "#365A77",
background_color = "white")
Image created by the author
ggplot2는 매력적인 시각화를 만들고 사용자 지정할 수 있는 강력한 R 라이브러리입니다. 이 기사에서는 NCEI 웹 사이트 에서 사용할 수 있는 신뢰할 수 있는 데이터를 사용하여 지구 온난화에 대한 인식을 높이는 플롯을 만드는 데 사용하는 방법을 배웠습니다 .
기후 데이터를 연구하고 시각화하는 더 많은 방법에 관심이 있다면 회귀 분석과 탄소 배출량 및 기온을 연관시키는 이 게시물을 확인하십시오: 기후 데이터 분석 및 시각화를 위한 R 프로그래밍.
이 게시물이 데이터를 시각화하는 방법에 대한 새로운 관점을 제공하여 플롯을 보다 효과적이고 매력적으로 만들 수 있기를 바랍니다.
*데이터세트 이용약관
국립해양대기청(NOAA) 웹사이트 에 따르면 "정부 웹페이지의 정보는 공개 도메인에 있으며 달리 명시되지 않는 한 미국 내 저작권 보호 대상이 아닙니다(저작권은 다른 곳에서 보유될 수 있음)."

![연결된 목록이란 무엇입니까? [1 부]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































