Quando o assunto é visualização de dados no R, é quase impossível não se lembrar do {ggplot2}. O pacote se tornou quase que padrão na comunidade, e isso não foi ao acaso, de fato ele realmente é um dos melhores no sentido de criar gráficos seja de quaisquer tipos, sendo simples e flexível. No Hackeando o R de hoje ensinaremos alguns pontos básicos sobre como personalizar seu próprio tema com o {ggplot2}.
Antes de tudo, é importante saber alguns conceitos do pacote. Para sua utilização, é necessário especificar na função ggplot() o data frame que irá ser utilizado, e também mapear os eixos x e y com a função aes(), de acordo com as colunas do conjunto de dados.
1 2 | library (ggplot2) ggplot (economics, aes (x = date, y = pce)) |
Porém, somente essa parte da função não é suficiente, portanto, ele se divide em "subfunções", cada qual com seu respectivo propósito para a construção dos gráficos. São eles:
- layer: coleção de elementos geométricos que formam os desenhos dos gráficos, são conhecidos pelas funções que iniciam com geom_ ou stats_.
- scale: funciona como forma de alterar as escalas do gráfico em consonância com o espaço mapeado pelos valores que são inseridos. Iniciam com scale_
- coord: descreve como os dados coordenando se inserem no plano do gráfico, por padrão segue o cartesiano, no qual os valores de x e y se combinam. Iniciam com coord_
- facet: utilizada para criar diversos gráficos com base em diferentes categorias do dataset. Iniciam com facet_
- theme: controla as cores, fontes, linhas e entre outros. Em suma, toda a parte visual do gráfico e que não faz parte dos dados. São criados com a função theme().
Dito isto, focaremos na estrutura da montagem de temas com o theme, que se separam em três subclasses: text, line e rectangle, cada uma com o proposito de alterar os elementos visuais do gráfico. Para cada subclasse existe um argumento específico de mudança e uma função padrão em que é utilizado para mudar as cores, fontes, tamanhos e entre outros. Vamos ver detalhadamente para cada tipo.
A primeira é o text, que controla toda a parte de texto do gráfico. Dentro da função themes(), é possível mudar desde todos os textos do gráfico com o argumento text =, e também é possível ser mais especificar, por exemplo, utilizando o argumento title =, em que é mudado apenas o texto do título.
Para realizar as mudanças, é necessário que após especificar o argumento do texto, para realizar as mudanças, é necessário utilizar a função element_text(). Exemplo:
1 2 3 | ggplot (economics, aes (x = date, y = pce))+ geom_line (size = .8, colour = "darkblue" )+ theme (title = element_text (color = "blue" )) |
Vemos a mudança no título do texto. Abaixo, segue os possíveis argumentos que podem ser utilizados para realizar as mudanças.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | theme ( text, axis.title, axis.title.x, axis.title.x.top, axis.title.x.bottom, axis.title.y, axis.title.y.left, axis.title.y.right, title, legend.title, plot.title, plot.subtitle, plot.caption, plot.tag, axis.text, axis.text.x, axis.text.x.top, axis.text.x.bottom, axis.text.y, axis.text.y.left, axis.text.y.right, legend.text, strip.text, strip.text.x, strip.text.y) |
O tipo line controla toda a parte de linhas dentro do plano do gráfico. Também é controlada a partir de argumentos próprios, com seus respectivos propósitos, além de possuir a sua própria função, chamada de element_line(). Exemplo:
1 2 3 | ggplot (economics, aes (x = date, y = pce))+ geom_line (size = .8, colour = "darkblue" )+ theme (axis.line = element_line (color = "blue" )) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | theme ( line, axis.ticks, axis.ticks.x, axis.ticks.x.top, axis.ticks.x.bottom, axis.ticks.y, axis.ticks.y.left, axis.ticks.y.right, axis.line, axis.line.x, axis.line.x.top, axis.line.x.bottom, axis.line.y, axis.line.y.left, axis.line.y.right, panel.grid, panel.grid.major, panel.grid.major.x, panel.grid.major.y, panel.grid.minor, panel.grid.minor.x, panel.grid.minor.y) |
Outro tipo é o rectangle, que altera toda a parte retangular dentro e fora do plano, além de alterar o retângulo que se encontra na legenda. Possui também seus próprios argumentos e sua função chamada element_rect(). Exemplo:
1 2 3 | ggplot (economics, aes (x = date, y = pce))+ geom_line (size = .8, colour = "darkblue" )+ theme (panel.background = element_rect (color = "blue" )) |
1 2 3 4 5 6 7 8 9 10 11 | theme ( rect, legend.background, legend.key, legend.box.background, panel.background, panel.border, plot.background, strip.background, strip.background.x, strip.background.y) |
1 2 3 4 5 | ggplot (economics, aes (x = date, y = pce))+ geom_line (size = .8, colour = "darkblue" )+ theme (text = element_blank (), line = element_blank (), rect = element_blank ()) |
É possível que seja criado um tema padrão, que pode ser salvo dentro de um objeto com a finalidade de ser reutilizado de forma rápida ao longo do código.
1 2 3 4 5 | theme_economics <- theme (text = element_text (family = "sans" , size = 14), rect = element_blank (), panel.grid = element_blank (), title = element_text (color = "darkblue" ), axis.line = element_line (color = "black" )) |
1 2 3 | ggplot (economics, aes (x = date, y = pce))+ geom_line (size = .8, colour = "darkblue" )+ theme_economics |