역사에 길이 남을 기념비적인 시각화 역작을 살펴보자. 1 2 3
나폴레옹 러시아 침공을 Charles Joseph Minard가 시각화한 산출물이 첫손에 꼽는 시각화 역작이다.
library(ggplot2)
library(maps)
library(mapproj)
library(HistData) # 데이터
나폴레옹 군대 러시아 침공 데이터를 HistData
에서 얻는다. 위도경도 정보가 있기 때문에 이를 지도에 투영하여 시각화는데 공격(A)과 퇴각(R)을 색상으로 구분하고 생존 군인수를 굵기를 통해 나폴레옹 군대의 러시아 침공 시점별로 군대 현황에 대한 정보를 한눈에 시각화할 수 있다.
# 1. 데이터 가져오기 -------------------------------------------------------------
data(Minard.troops); data(Minard.cities)
troops <- Minard.troops
cities <- Minard.cities
# 2. 지도 -------------------------------------------------------------
russia <- map_data("world", region="Russia")
russia <- subset(russia, group != 32)
# 3. 시각화 -----------------------------------------------------------
plot_polished <- ggplot(troops, aes(long, lat)) +
geom_path(aes(size=survivors, color = direction, group = group)) +
geom_text(aes(label = city), size = 3, data = cities) +
coord_fixed(ratio=3) # 종횡비 조정: 3 x 1
plot_polished
library(cholera)
par(mfrow=c(1,2))
plot(neighborhoodVoronoi())
plot(neighborhoodWalking())
library(gapminder)
library(gganimate)
ggplot(gapminder, aes(gdpPercap, lifeExp, size = pop, colour = country)) +
geom_point(show.legend = FALSE, alpha = 0.7) +
scale_color_viridis_d() +
scale_size(range = c(2, 12)) +
scale_x_log10() +
labs(title = '연도: {frame_time}', x = '1인당 GDP', y = '기대수명') +
transition_time(year) +
ease_aes('linear')
library(HistData)
data(Nightingale)
library(tidyverse)
library(ggthemes)
library(extrafont)
loadfonts()
mortality_df <- Nightingale %>%
select(Date, Disease.rate, Wounds.rate, Other.rate) %>%
gather(Cause, Deaths, -Date) %>%
mutate(Cause = str_replace_all(Cause, "\\.rate", ""),
Regime = rep(c(rep("Before", 12), rep("After", 12)), 3)) %>%
mutate(Regime = factor(Regime, levels=c("Before", "After")))
cp <- coord_polar(start = 3*pi/2)
cp$is_free <- function() TRUE
mortality_df %>%
ggplot(aes(x = factor(Date), y = Deaths, fill = Cause)) +
geom_col(color = "black") +
scale_y_sqrt() +
# facet_wrap( ~ Regime, scales = "free", labeller = label_both) +
facet_wrap( ~ Regime, scales = "free_x", labeller = label_both) +
cp +
labs(x = NULL, y = NULL,
fill = "병사 사망원인",
title = "크림전쟁 병사 사망원인 - 나이팅게일",
caption = "데이터 출처: 크림전쟁 병사 사망원인 데이터 종합") +
theme_fivethirtyeight(base_family = "NanumGothic") +
scale_fill_fivethirtyeight() +
theme(legend.position = "top")
Michael Friendly, “A Brief History of Data Visualization”, In Handbook of Computational Statistics: Data Visualization, C. Chen, W. Härdle, A Unwin (Ed.), Heidelberg: Springer-Verlag, Ch. 1, pp. 1–34, 2007.↩
Tableau Software(2012), The 5 most influential data visualizations of all time↩
Kanchana Kovalam (March 29, 2017), “Kanchana Kovalam_512 90_Spring 2017_Remapping Snows Data”↩
DataNovia, “GGANIMATE: HOW TO CREATE PLOTS WITH BEAUTIFUL ANIMATION IN R”↩
Nguyen Chi Dung, “Florence Nightingale’s Data On Deaths From Various Causes In The Crimean War”↩
RICHARD BEDFORD, Why a journalist should use GIS – Views from the leading experts↩