R

Como Criar Gráficos Interativos no R com plotly

Escrito por Erick Faria · 3 min. >
Gráficos Interativos no R

Neste post, vamos explorar como criar gráficos interativos no R utilizando o pacote plotly. Gráficos interativos são excelentes para explorar dados de forma dinâmica e envolvente, permitindo que os usuários interajam com os gráficos e obtenham mais informações. Vamos criar um DataFrame de exemplo e abordar várias técnicas para criar gráficos interativos usando plotly.

Por que Usar plotly para Gráficos Interativos no R?

O plotly é um pacote poderoso para criar gráficos interativos de alta qualidade no R. Ele oferece uma ampla gama de gráficos, desde simples gráficos de linha e barra até gráficos complexos como mapas e gráficos 3D. Além disso, plotly integra-se perfeitamente com o ggplot2, permitindo transformar gráficos estáticos em interativos com facilidade.

Trabalhando com Dados no R

Criando um DataFrame de Exemplo

Vamos começar criando um DataFrame com alguns dados de exemplo:

# Gráficos Interativos no R
# Carregando os pacotes necessários
library(plotly)
library(dplyr)

# Criando um DataFrame de exemplo
data <- data.frame(
  Nome = c('João', 'Ana', 'Carlos', 'Marta', 'Pedro'),
  Idade = c(23, 45, 35, 41, 29),
  Cidade = c('São Paulo', 'Rio de Janeiro', 'Belo Horizonte', 'Salvador', 'São Paulo'),
  Salario = c(5000, 7000, 8000, 6200, 5400)
)

Criando Gráficos Interativos no R

Gráfico de Dispersão Interativo

Vamos criar um gráfico de dispersão interativo para visualizar a relação entre idade e salário:

# Gráficos Interativos no R
# Criando um gráfico de dispersão interativo
plot_ly(data, x = ~Idade, y = ~Salario, type = 'scatter', mode = 'markers',
        marker = list(size = 10, color = 'rgba(152, 0, 0, .8)',
                      line = list(color = 'rgba(0, 0, 0, .5)', width = 2))) %>%
  layout(title = 'Relação entre Idade e Salário',
         xaxis = list(title = 'Idade'),
         yaxis = list(title = 'Salário'))

Gráfico de Barras Interativo

Vamos criar um gráfico de barras interativo para visualizar a distribuição de salários por cidade:

# Gráficos Interativos no R
# Criando um gráfico de barras interativo
plot_ly(data, x = ~Cidade, y = ~Salario, type = 'bar',
        marker = list(color = 'rgba(55, 128, 191, 0.7)',
                      line = list(color = 'rgba(55, 128, 191, 1.0)', width = 2))) %>%
  layout(title = 'Distribuição de Salários por Cidade',
         xaxis = list(title = 'Cidade'),
         yaxis = list(title = 'Salário'))

Gráfico de Linhas Interativo

Vamos criar um gráfico de linhas interativo para visualizar a variação de salário ao longo do tempo. Primeiro, adicionamos uma coluna de data ao DataFrame:

# Gráficos Interativos no R
# Adicionando uma coluna de data ao DataFrame
data$Data <- as.Date(c('2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05'))

# Criando um gráfico de linhas interativo
plot_ly(data, x = ~Data, y = ~Salario, type = 'scatter', mode = 'lines+markers',
        line = list(color = 'rgba(0, 128, 0, 0.8)', width = 2)) %>%
  layout(title = 'Variação de Salário ao Longo do Tempo',
         xaxis = list(title = 'Data'),
         yaxis = list(title = 'Salário'))

Personalizando Gráficos Interativos

Adicionando Anotações

Podemos adicionar anotações aos gráficos para destacar pontos específicos:

# Gráficos Interativos no R
# Adicionando uma anotação ao gráfico de dispersão
plot_ly(data, x = ~Idade, y = ~Salario, type = 'scatter', mode = 'markers') %>%
  layout(title = 'Relação entre Idade e Salário',
         xaxis = list(title = 'Idade'),
         yaxis = list(title = 'Salário'),
         annotations = list(
           list(
             x = 35,
             y = 8000,
             text = "Carlos tem o maior salário",
             showarrow = TRUE,
             arrowhead = 7,
             ax = 0,
             ay = -40
           )
         ))

Integrando com ggplot2

Podemos transformar gráficos criados com ggplot2 em gráficos interativos com plotly usando a função ggplotly:

# Gráficos Interativos no R
# Carregando o pacote ggplot2
library(ggplot2)

# Criando um gráfico com ggplot2
p <- ggplot(data, aes(x = Cidade, y = Salario, fill = Cidade)) +
  geom_bar(stat = "identity") +
  theme_minimal() +
  ggtitle('Distribuição de Salários por Cidade')

# Transformando o gráfico em interativo
ggplotly(p)

Para mais informações sobre como utilizar o R para análise de dados, confira outros conteúdos no meu blog:

Considerações Finais

Espero que este guia tenha sido útil para aprender como criar gráficos interativos com o pacote plotly no R. A prática é essencial para dominar essas técnicas, então encorajo você a experimentar e aplicar esses métodos em seus próprios projetos de análise de dados.

Para aprimorar suas habilidades com o R e se tornar mais eficiente na criação de visualizações de dados, é importante também fortalecer sua compreensão em ciência de dados. Recomendamos o livro Fundamentos em R: Guia Completo para Iniciantes, disponível na Amazon, que oferece uma introdução abrangente ao R.

Junte-se à nossa comunidade no Twitter e inscreva-se no nosso canal do YouTube para acessar mais tutoriais, dicas e recursos. Continue praticando e explorando novas maneiras de criar gráficos interativos com o R, e fique atento para mais guias e tutoriais que compartilharemos.

Escrito por Erick Faria
Engenheiro de Dados com Ph.D. em Geografia e experiência em análise espacial e geoprocessamento. Expertise em processamento de grandes volumes de dados geoespaciais, imagens de satélite e dados de mercado, utilizando ferramentas como Spark, Databricks e Google Earth Engine. Experiência em projetos de mercado de carbono, modelos preditivos para investimentos agrícolas e liderança de projetos de dados em saúde pública. Habilidades em Python, R, SQL e diversas ferramentas de engenharia de dados. Profile