Deixe seus gráficos no ggplot2 mais visuais com imagens

Este post escrito por Sillas Gonzaga, um dos professores do curso Ciência de Dados com R, tem o objetivo de ensinar a inserir imagens da internet no ggplot2, extrair links de imagens de uma página na Wikipedia e usar o pacote BETS para pesquisar e baixar séries temporais brasileiras.

Durante este processo foram utilizados os pacotes:


Coleta dos dados

Vamos fazer um rápido exercício: baixar alguma série temporal brasileira de 20 anos para cá e mostrar como sua variável mudou ao longo dos diferentes mandatos dos presidentes da República.

Ao invés de procurar na Internet uma fonte para os dados, podemos realizar essa etapa da coleta dos dados dentro do próprio R, graças ao pacote BETS.

Suponha que desejamos pesquisar séries relacionadas ao consumo de energia elétrica no Brasil. Para isso, usamos a função BETS.search():


code description unit periodicity start last_value source
1402 Electric energy consumption – Brazil – commercial GWh M 31/01/1979 apr/2017 Eletrobras
1403 Electric energy consumption – Brazil – residential GWh M 31/01/1979 apr/2017 Eletrobras
1404 Electric energy consumption – Brazil – industrial GWh M 31/01/1979 apr/2017 Eletrobras
1405 Electric energy consumption – Brazil – other GWh M 31/01/1979 apr/2017 Eletrobras
1406 Electric energy consumption – Brazil – total GWh M 31/01/1979 apr/2017 Eletrobras
1407 Electric energy consumption – Northern region – commercial GWh M 31/01/1979 apr/2017 Eletrobras
1408 Electric energy consumption – Northern region – residential GWh M 31/01/1979 apr/2017 Eletrobras
1409 Electric energy consumption – Northern region – industrial GWh M 31/01/1979 apr/2017 Eletrobras
1410 Electric energy consumption – Northern region – other GWh M 31/01/1979 apr/2017 Eletrobras
1411 Electric energy consumption – Northern region – total GWh M 31/01/1979 apr/2017 Eletrobras
1412 Electric energy consumption – Northeast region – commercial GWh M 31/01/1979 apr/2017 Eletrobras
1413 Electric energy consumption – Northeast region – residential GWh M 31/01/1979 apr/2017 Eletrobras
1414 Electric energy consumption – Northeast region – industrial GWh M 31/01/1979 apr/2017 Eletrobras
1415 Electric energy consumption – Northeast region – other GWh M 31/01/1979 apr/2017 Eletrobras
1416 Electric energy consumption – Northeast region – total GWh M 31/01/1979 apr/2017 Eletrobras
1417 Electric energy consumption – Southern region – commercial GWh M 31/01/1979 apr/2017 Eletrobras
1418 Electric energy consumption – Southern region – residential GWh M 31/01/1979 apr/2017 Eletrobras
1419 Electric energy consumption – Southern region – industrial GWh M 31/01/1979 apr/2017 Eletrobras
1420 Electric energy consumption – Southern region – other GWh M 31/01/1979 apr/2017 Eletrobras
1421 Electric energy consumption – Southern region – total GWh M 31/01/1979 apr/2017 Eletrobras

Vale a pena ler a documentação da função BETS.search() para entender o que cada variável do dataframe retornado significa. Para este post, vamos usar a série 1404, referente ao consumo de energia elétrica na indústria nacional.


date value
1 1979-01-01 4215
2 1979-02-01 4221
3 1979-03-01 4329
4 1979-04-01 4405
5 1979-05-01 4563
6 1979-06-01 4672
457 2017-01-01 13088
458 2017-02-01 13251
459 2017-03-01 13810
460 2017-04-01 13900
461 2017-05-01 13503
462 2017-06-01 13770

Temos então um dataframe de 462 linhas que vai desde Janeiro de 1979 até Junho de 2017. Plotar essa série com o ggplot2 é muito simples:


Temos então uma ideia diferente: que tal destacar no gráfico os períodos referentes aos diferentes presidentes da república que já tivemos? Para isso, criamos um data frame com os mandatos presidenciais da Nova República:


Contudo, podemos fazer algo diferente: Ao invés do nome, uma foto presidenciável!

Uma boa fonte para as fotos de nossos presidentes é a página da Wikipedia da lista de presidentes do Brasil. Precisamos ler o código fonte da página e extrair os links que estão marcados com a tag img.



Veja que as fotos dos presidentes da Nova República começam no elemento 39 e vão até o 45 do vetor de links. Além de extrair esses 7 links em específicos, precisamos também completá-los com um https: para que possamos fazer o download das imagens.


Após extrair os links das fotos, usamos o ótimo pacote magick para as trazer para o R e inseri-las sobre o gráfico gerado com o ggplot2:


Se você digitar imgs[7], irá aparecer a foto do Michel Temer no painel Viewer do seu Rstudio.

Finalmente, depois de obter as imagens, podemos as “colar” no gráfico do ggplot2 que criamos. Por enquanto, ainda não há um jeito muito automático de posicionar corretamente as imagens em um gráfico: os parâmetros de posicionamento do código abaixo foram obtidos por meio de tentativa e erro.


Juntar as imagens geradas pelo magick com o gráfico do ggplot2 é feito por meio do pacote grid. Imagine que, ao criar um gráfico do ggplot2, o grid o interpreta como uma folha em branco, cujos eixos x e y vão de 0 a 1. Ou seja, quanto mais próximo a 1 for o argumento x da função grid.raster(), mais a direita a imagem ficará no gráfico.

Este modelo de aplicação do R é uma das possibilidades que a programação te oferece, aproveite e venha aprender muito mais sobre essa programação e linguagem nas novas turmas do curso de Ciência de Dados com R. O curso presencial acontecerá em Brasilia e em São Paulo e você já pode se inscrever! Te aguardamos para trocar experiências e praticar os aprendizados.

postrelacionados

Comentários

comments

Deixe um comentário