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)
<- ggplot(mtcars, aes(wt, mpg, colour = as.factor(cyl))) +
p geom_point()
p<- ggplot(mtcars, aes(x = hp, fill = as.factor(cyl))) + geom_histogram()
h h
ggplot
객체를 ggplot2loon()
함수에 던지게 되면 오리(loon) 객체로 변환되어 인터랙티브 시각화가 가능하게 된다.
library(loon.ggplot)
<- ggplot2loon(p)
pl <- ggplot2loon(h) hl
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)
<- gapminder %>%
gp filter(year == 2007,
!= "Oceania") %>%
continent 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()