Code
install.packages("diveR")
install.packages("loon.ggplot")인터랙티브 그래픽 문법
인터랙티브 그래픽 문법은 기존 그래프 문법(Grammar of Graphics)에 다음 문법이 추가된다.
linking()hover()selection()active()zoom()interactivity()ggplot 확장 도구loon은 우리나라말로 오리로 TCL 언어에 기반한 loon 에 기반을 두고 있으며 이를 ggplot에 확장한 것이 loon.ggplot 이다. loon.ggplot 을 통해 두가지 세상(verse)을 연결할 수 있다.
loon.ggplot 설치에 앞서 의존성을 diveR을 설치한다. diveR은 tidyverse처럼 인터랙티브 그래픽에 필요한 관련 패키지를 모두 설치해준다. 참고로 diveR 세상은 다음 패키지로 구성된다.
diveR 버스(verse)
install.packages("diveR")
install.packages("loon.ggplot")먼저, 산점도와 막대그래프를 ggplot으로 정적 그래프를 제작한다.
library(ggplot2)
p <- ggplot(mtcars, aes(wt, mpg, colour = as.factor(cyl))) +
geom_point()
p
h <- ggplot(mtcars, aes(x = hp, fill = as.factor(cyl))) + geom_histogram()
hggplot 객체를 ggplot2loon() 함수에 던지게 되면 오리(loon) 객체로 변환되어 인터랙티브 시각화가 가능하게 된다.
library(loon.ggplot)
pl <- ggplot2loon(p)
hl <- ggplot2loon(h)ggplot() 함수를 l_ggplot()함수로 대체하여 ggplot 문법에 맞춰 시각화를 하게 되면 인터랙티브 그래픽을 제작할 수 있게 된다.
# the scatter plot
l_ggplot(mtcars, aes(wt,
mpg,
colour = as.factor(cyl))) +
geom_point()[1] ".l2.ggplot.plot"
attr(,"class")
[1] "l_plot" "loon"
# the histogram
l_ggplot(mtcars, aes(x = hp, fill = as.factor(cyl))) +
geom_histogram()[1] ".l3.ggplot.hist"
attr(,"class")
[1] "l_hist" "loon"
ggplot을 인터랙티브 그래픽을 위해 loon.shiny()로 심화분석을 갈 수 있다.
library(dplyr)
gp <- gapminder %>%
filter(year == 2007,
continent != "Oceania") %>%
ggplot(mapping = aes(gdpPercap, lifeExp,
colour = continent)) +
geom_point(mapping = aes(size = pop)) +
geom_smooth(mapping = aes(weight = pop),
method = "lm",
se = FALSE)
library(loon.shiny)
gp %>%
loon.ggplot() %>%
loon.shiny()