Uma área em que a análise de dados vem se expandindo nos últimos tempos são os gráficos interativos. Há alguns exemplos realmente excelentes na web, tais como Gráficos D3 do R Psychologist e do Comex Vis. O que esses gráficos interativos possuem em comum é a utilização de um navegador para a visualização. Um pacote que é particularmente fácil de usar é ggiraph que interage com o pacote ggplot do R.
Vou mostrar aqui como nós podemos utilizar o ggiraph para criar de forma muito rápida gráficos interativos no R. Primeiro, vamos instalar o pacote e carregá-lo:

# install.packages("ggiraph") #se você não tiver o pacote instalado
library(ggiraph)

Eu vou utilizar um banco de dados que normalmente é utilizado nos exemplos do pacote. O dataset  se chama “USArrests” que já vem com o R. Nesse banco de dados, os nomes dos estados dos EUA são os nomes das linhas do “dataframe”, o que não é necessariamente o ideal.  Vamos aqui criar um uma variável chamada State, com o nome das linhas.

crimes <- data.frame(state = rownames(USArrests), USArrests)
row.names(crimes) <- NULL
head(crimes)

 

##        state Murder Assault UrbanPop Rape
## 1    Alabama   13.2     236       58 21.2
## 2     Alaska   10.0     263       48 44.5
## 3    Arizona    8.1     294       80 31.0
## 4   Arkansas    8.8     190       50 19.5
## 5 California    9.0     276       91 40.6
## 6   Colorado    7.9     204       78 38.7

Vou utilizar o ggplot2 e o ggiraph para construir um gráfico para entender como a quantidade de assassinatos se comporta com o tamanho da população urbana. Para fazer isso, será necessário salvar o gráfico como um objeto e depois chamar o comando ggiraph() . Observe que os argumentos data_id e tooltip controlam o que será visto quando passarmos o mouse sobre o ponto no gráfico.

murder_plot <- ggplot(crimes, aes(x = UrbanPop, y = Murder)) +
geom_point_interactive(aes(data_id = state, tooltip = state), size = 3) +
scale_colour_gradient(low = "#999999", high = "#FF3333") +
theme_minimal()
ggiraph(code = print(murder_plot))

Você visualizará esse gráfico no painel “Viewer” do RStudio ou em um navegador como o Chrome, clicando em visualizar em uma nova janela.
aba-viewer
O gráfico está ok, mas ele pode ser um pouco mais interessante. Por exemplo: e se analisássemos a correlação de estupros e assaltos e como eles se comportam com o aumento populacional nos EUA?

assault_plot geom_point_interactive(aes(data_id = state, tooltip = state), size = 3) +
scale_colour_gradient(low = "#CAE1FF", high = "#4682B4") +
theme_minimal()
ggiraph(code = print(assault_plot))

Existem vários outros pacotes para criar gráficos interativos no R, como o tilegramsR ou o ggviz. Entretanto, o ggiraph é definitivamente um dos mais fáceis de ser utilizados.

[:en]One area in which data analysis has been expanding in recent times is interactive graphics. There are some truly excellent examples on the web, such as R Psychologist’s d3 graphics and those built to interact with R’s ggplot2 package, such as plotly. What these have in common is the use of a modern browser. RStudio already comes with its own browser, so we can build interactive graphics right inside RStudio. One package that is particularly easy to use is ggiraph .
We can use ggiraph to quickly create an interactive graphic in R. First, let’s install and load the package:

# install.packages("ggiraph") if you don't have the package installed
library(ggiraph)

We can use a dataset, as in the ggiraph package vignette, to make our graph. The dataset is “USArrests” from the datasets package, which comes with R. In this dataset, the names of the US states are the row names of the dataframe, which is not ideal. We can first create a new variable, State , which is made of these row names.

crimes <- data.frame(state = rownames(USArrests), USArrests)
row.names(crimes) <- NULL
head(crimes)

 

##        state Murder Assault UrbanPop Rape
## 1    Alabama   13.2     236       58 21.2
## 2     Alaska   10.0     263       48 44.5
## 3    Arizona    8.1     294       80 31.0
## 4   Arkansas    8.8     190       50 19.5
## 5 California    9.0     276       91 40.6
## 6   Colorado    7.9     204       78 38.7

We can use ggplot2  and ggiraph to build a plot of how murder changes with urban population. It involves saving the plot as an object and then sending to the call to ggiraph() . The data_id  and tooltip arguments control what we see when we hover over the data point.

murder_plot <- ggplot(crimes, aes(x = UrbanPop, y = Murder)) +
geom_point_interactive(aes(data_id = state, tooltip = state), size = 3) +
scale_colour_gradient(low = "#999999", high = "#FF3333") +
theme_minimal()
ggiraph(code = print(murder_plot))

You can view this graphic either in the “Viewer” pane in RStudio or in a browser such as Chrome (the browser is better, click on the little white arrow and square in the Viewer pane of RStudio).
This graphic is okay, but we could make some that are a little more interesting. For example, are rapes and assaults correlated? And how do they change as population increases?

assault_plot geom_point_interactive(aes(data_id = state, tooltip = state), size = 3) +
scale_colour_gradient(low = "#CAE1FF", high = "#4682B4") +
theme_minimal()
ggiraph(code = print(assault_plot))

There are of course other interactive graphics packages, such as tilegramsR or ggviz, however, ggiraph is definitely one of the easiest to use.