Skip to Content

Formatação de gráficos e tabelas do R

Visualização de dados Tabela

Formatação Tabela Gráfico

Introdução

Se você usar o código ou as informações deste guia em um trabalho publicado, solicito que cite-o como uma fonte nas referências bibliográficas.

DUTT-ROSS,Steven Formatação de gráficos e tabelas do R. Rio de Janeiro. 2020. mimeo. Disponível em: https://blog.metodosquantitativos.com/summary/


Você não precisa usar o R… pode usar o Python também.


1. Formatação de gráficos e tabelas do R

Formatar Tabelas é algo muito importante. É também, o primeiro passo para que você possa criar análises.

Mas deixemos de conversa e vamos, portanto, formatar nosso data.frame. Neste exemplo quero criar uma tabela por gênero (Feminino/Masculino).

2. Inspiração + dados

Usaremos o banco de dados do Titanic.

Disponível publicamente no Journal of Statistics Education.
Dados originais podem ser baixados do artigo The "Unusual Episode" Data Revisited
Os dados surgiram do workshop STATS "Statistical Thinking And Teaching Statistics"
Foi analisado por Dawson (1995), Simonoff (1997), e por outros.

3. Carregar os dados

Esses são os dados de um periódico de educação estatística. Eles já estão prontos para análise estatística. Todavia, posso dizer por experiência que os dados precisam ser verificados todas as vezes que não sair de um livro didático.

Use este código para ler o banco de dados disponível em https://github.com/DATAUNIRIO/Base_de_dados

load(url("https://github.com/DATAUNIRIO/Base_de_dados/raw/master/Titanic.RData"))
ls()

O banco de dados se chama Titanic.RData e está armazenado no repositório de bases de dados do curso de estatística. Você pode usar esse código se quiser ler o arquivo RData local.

load("C:/SEU DIRETÓRIO ATÉ O ARQUIVO/Titanic.RData")

4. Uma tabela tradicional do

table(Titanic$Sexo)

Essa´é uma tabela simples e fácil. Temos muitas opções de tabelas no . Entre as diversas opções, sou fã dos pacotes gt e formattable. Todavia, hoje eu gostaria de explorar algo diferente. Gostaria de inserir algumas figuras na tabela.

5. Colocando uma figura em um gráfico do

library(ggtext)
library(dplyr)


labels <- c(
  Feminino = "<img src='https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/female.png'
    width='100' /><br>*Feminino*",
  Masculino = "<img src='https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/male.png'
    width='100' /><br>*Masculino*"
)

ggplot(Titanic, aes(Sexo)) +
  geom_bar()+
  scale_x_discrete(
    name = NULL,
    labels = labels
  ) +
  theme(
    axis.text.x = element_markdown(color = "black", size = 11)
  )

6. Colocando uma outra figura

labels2 <- c(
  Feminino = "<img src='https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/woman.png'
    width='100' /><br>*Feminino*",
  Masculino = "<img src='https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/man.png'
    width='100' /><br>*Masculino*"
)

ggplot(Titanic, aes(Sexo,fill="Pessoas \n no Titanic")) +
  geom_bar()+
  scale_x_discrete(
    name = "Pessoas",
    labels = labels2
  ) +
  theme(
    axis.text.x = element_markdown(color = "black", size = 11)
  )

7. Colocando uma figura em uma tabela do

Feminino <- function(x) web_image('https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/female.png', height = 100)
Masculino <- function(x) web_image('https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/male.png', height = 100)

cap <- 'Tabela 1 - sobreviventes do Titanic por sexo'
datasummary(Sexo + 1 ~ (N = 1) + Percent(),
            data = Titanic,
            output = 'gt',
            fmt = NULL,
            title = cap,
            notes = 'Fonte: DATAUNIRIO. Artwork by Freepik',
            sparse_header = TRUE) %>%
  text_transform(locations = cells_body(columns = 1, rows = 1), fn = Feminino) %>%
  text_transform(locations = cells_body(columns = 1, rows = 2), fn = Masculino) %>%
  tab_style(style = list(cell_text(color = "#FF6700", size = 'x-large')), locations = cells_body(rows = 1)) %>%
  tab_style(style = list(cell_text(color = "#CD51D1", size = 'x-large')), locations = cells_body(rows = 2)) %>%
  tab_options(table_body.hlines.width = 0, table.border.top.width = 0, table.border.bottom.width = 0) %>%
  cols_align('center', columns = 2:3)
Tabela 1 - sobreviventes do Titanic por sexo
Sexo N Percent
470 21.36364
1730 78.63636
All 2200 100.00000
Fonte: DATAUNIRIO. Artwork by Freepik

8. Colocando uma outra figura

Feminino <- function(x) web_image('https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/woman.png', height = 100)
Masculino <- function(x) web_image('https://raw.githubusercontent.com/DATAUNIRIO/CSS/master/img/freepik/man.png', height = 100)

cap <- 'Tabela 2 - sobreviventes do Titanic por sexo com avatar'
datasummary(Sexo + 1 ~ (N = 1) + Percent(),
            data = Titanic,
            output = 'gt',
            fmt = NULL,
            title = cap,
            notes = 'Fonte: DATAUNIRIO. Artwork by Freepik',
            sparse_header = TRUE) %>%
  text_transform(locations = cells_body(columns = 1, rows = 1), fn = Feminino) %>%
  text_transform(locations = cells_body(columns = 1, rows = 2), fn = Masculino) %>%
  tab_style(style = list(cell_text(color = "pink", size = 'x-large')), locations = cells_body(rows = 1)) %>%
  tab_style(style = list(cell_text(color = "blue", size = 'x-large')), locations = cells_body(rows = 2)) %>%
  tab_options(table_body.hlines.width = 0, table.border.top.width = 0, table.border.bottom.width = 0) %>%
  cols_align('center', columns = 2:3)
Tabela 2 - sobreviventes do Titanic por sexo com avatar
Sexo N Percent
470 21.36364
1730 78.63636
All 2200 100.00000
Fonte: DATAUNIRIO. Artwork by Freepik

Para saber sobre outras funções no e no Python, você pode acessar o meu blog https://blog.metodosquantitativos.com/ ou o meu site pessoal https://steven.metodosquantitativos.com/