Exchange + R + Power BI: e-mails recebidos exibidos no gráfico de calendário

Quem trabalha criando relatórios sabe como escolher a melhor forma de exibição das informações faz toda a diferença para facilitar o entendimento dos dados. E as ferramentas de BI a cada dia possuem recursos visuais mais avançados. Geralmente gráficos comuns já estão disponíveis em ferramentas como Tableau, QlikView, Power BI, entre outras.

Porém é praticamente impossível uma ferramenta ter todos os gráficos que alguém já imaginou. Por isso, muitas vezes é importante para uma ferramenta de relatórios ser extensível, ou seja, permitir alguma forma de customização para que o usuário possa incorporar novas funcionalidades.

A ideia deste post é mostrar como criar um “Calendar Heatmap”, ou seja, um gráfico em formato de calendário, que possa apresentar dados de e-mails recebidos por um usuário durante algum período. Quanto mais forte é a cor, maior o número de e-mails recebidos naquela data. A ideia é interpretar de forma rápida os dias de semana e os meses que ele mais recebeu e-mails.

Além deste exemplo dos e-mails, este tipo de visual pode ser interessante para as seguintes aplicações:

  • Mostrar a atividade de um usuário em um site (GitHub, por exemplo);
  • Exibir os chamados atendidos por dia em uma equipe de suporte;
  • Identificar picos de compra em um determinado dia da semana.
postcalendar_github

Gráfico de atividade no GitHub

Vamos utilizar como ferramenta o Power BI Desktop, e utilizar a sua integração com o R para criar este gráfico, customizando os nomes, títulos, cores, etc.

Trazendo dados do Microsoft Exchange

Inicialmente, na tela inicial do Power BI Desktop, vamos escolher a opção “Obter Dados” no menu superior, navegar até a opção “Outras” e escolher “Microsoft Exchange” (imagem a seguir). Dessa forma, realizaremos a conexão ao e-mail que você utiliza no Outlook da sua organização:

postcalendar_exchange

Utilizando Microsoft Exchange como fonte de dados

 

Na tela que solicita o endereço da caixa de correio, preencha com o seu e-mail corporativo e realize a autenticação para se conectar ao servidor de e-mail do Exchange (imagem abaixo):

postcalendar_email

Preenchendo a informação do endereço de e-mail

 

Selecionando e agrupando os dados para contar os e-mails por dia

Após realizar a conexão com sucesso, clique no botão “Editar” para realizarmos as transformações necessárias para termos os dados dos e-mails recebidos por dia e a quantidade.

Inicialmente vamos selecionar as colunas “FolderPath”, “DateTimeReceived” e “Id”, que são as colunas que vamos utilizar. Em seguida, clique com botão direito e selecione a opção “Remover Outras Colunas” (imagem abaixo):

postcalendar_removecolumns

Removendo colunas desnecessárias para a análise

 

Depois de filtrar as colunas, agora vamos selecionar somente as linhas que nos interessam. Clique na seta ao lado do nome da coluna “Folder Path” e marque a opção “\Caixa de Entrada\” (imagem a seguir) para mantermos apenas as linhas que possuem dados dos e-mails que estão na Caixa de Entrada (lembre-se, os e-mails recebidos é que são importantes neste cenário):

postcalendar_selectcaixaentrada

Selecionando linhas de pasta “Caixa de Entrada”

 

Como queremos realizar a contagem de e-mails recebidos por dia e os dados da coluna “DateTimeReceived” contém também informações de hora, vamos modificar o tipo de dados desta coluna clicando com botão direito nela, selecionando “Alterar Tipo” e “Data”, para converter o campo do tipo “Data/ Hora” para o tipo “Data” (imagem abaixo):

postcalendar_changetype

Alterando o tipo de dados da coluna “DateTimeReceived”

 

Agora que já temos nossos dados organizados, podemos aplicar a função de agrupamento para contar as linhas da tabela agrupando por data. No menu superior do Power BI Desktop, clique na opção “Agrupar por” (imagem abaixo):

postcalendar_groupby

Botão “Agrupar por” no menu do Power BI

 

Selecione “DateTimeReceived” como a coluna que deverá ser agrupada e “Contar Linhas” como a operação, conforme a imagem a seguir. Clique em “OK” para realizar o agrupamento.

postcalendar_groupcount

Definindo coluna e operação de agrupamento

 

No último passo, renomeie a coluna “Contagem” para “EmailsDia”.

Calendar Heatmap

Agora vamos adicionar o gráfico de calendário no Power BI Desktop utilizando um script do R. Inicialmente clique no ícone do R que aparece na aba “Visualizações” para incluir um visual do R no seu relatório.

postcalendar_rbutton

Botão do “R” no Power BI Desktop

 

Se o ícone do R não está aparecendo para você ao lado dos ícones dos outros tipos de gráfico, provavelmente você ainda não realizou a  integração do Power BI com o R. Clique aqui para ver o que é necessário para utilizar scripts do R no seu Power BI Desktop.

O script do R que vamos utilizar basicamente cria algumas colunas para exibição dos dados e gera o gráfico do calendário. É importante que você tenha os pacotes do R instalados para que o script funcione corretamente. Ele está disponível no seguinte diretório do GitHub (Calendar_HeatMap.R): https://github.com/mvbfontes/calendarheatmapvisual

Após clicar no ícone do R, selecione os campos “DateTimeReceived” e “EmailsDia”. Em seguida cole o script do R que cria o visual de “Calendar HeatMap” na área destacada em vermelho na imagem abaixo.

postcalendar_rscript

Editor de script do R no Power BI Desktop

 

No editor de script do R, clique no botão “Executar Script” para gerar o gráfico no seu relatório:

postcalendar_chart

Gráfico de calendário mostrando e-mails recebidos por data

 

Pronto! Gráfico “Calendar Heatmap” gerado!

Caso você tenha algum problema, há a opção de editar o script do R em alguma IDE externa, como o RStudio. Assim, fica mais fácil de realizar a identificação e a correção de possíveis erros.

Recursos adicionais

O Power BI Desktop possui, além da integração com R, uma funcionalidade denominada “Custom Visuals”, onde você pode adicionar visuais já prontos ao seu relatório. Para este cenário, um visual interessante que pode ser adicionado é o “Timeline”, onde você pode filtrar com facilidade o período de tempo que deseja exibir!

Caso você queira reproduzir este cenário utilizando o RStudio, por exemplo (sem utilizar o Power BI Desktop), uma cópia dos dados em formato CSV está disponível no mesmo diretório do GitHub.

Referências:

Analyzing your Microsoft Exchange Account Data with Power Query

ggplot2 Time Series Heatmaps

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s