image

Acesse bootcamps ilimitados e +650 cursos

50
%OFF
Article image
Lia Santos
Lia Santos18/02/2024 13:01
Compartilhe

Como criar um gráfico de Histograma no R usando o pacote ggplot2

    A visualização de dados é uma ferramenta essencial na análise e interpretação de conjuntos de dados complexos. No ecossistema da linguagem de programação R, o pacote ggplot2, desenvolvido por Hadley Wickham, autor de “R para Data Science”, é uma das ferramentas mais poderosas e flexíveis para a criação de gráficos estatísticos.

    Neste artigo, exploraremos os fundamentos do ggplot2 e como ele pode ser usado para criar gráficos de histograma destinados à análise de uma variável numérica.

    Instalando o pacote ggplot2

    Para instalar o pacote ggplot2, primeiro precisamos usar a função install.packages() e, após, carregamos o pacote com a função library() .

    O código ficará assim:

    install.packages("ggplot2")
    library(ggplot2)
    

    Carregando os dados

    Os dados que vou utilizar como exemplo são parte do pacote datasets, chamado students, e mostram o efeito de dois soporíferos (“remédios do sono”) em 10 pacientes.

    Para isso, precisamos instalar e carregar o pacote datasets com o mesmo método explicado anteriormente:

    install.packages("datasets")
    library(datasets)
    

    Vou atribuir os dados a uma variável chamada df, pois iremos utilizá-la na contrução dos gráficos:

    df <- sleep
    df
    

    Construindo o Histograma

    Como vamos criar um histograma, precisamos informar apenas o nome da variável do eixo x. No caso, é a coluna “extra”, pois é a única coluna que contém uma variável numérica.

    No código a seguir, usamos a função ggplot() para informar a origem dos dados (argumento “data”) e a coluna que será plotada no eixo x da estética (função aes()):

    ggplot(data = df, aes(x = extra))
    

    O resultado será a imagem abaixo:

    image

    Adicionamos a geometria do histograma (geom_histogram()) e escolhemos a largura do bin (argumento “binwidth”):

    ggplot(data = df, aes(x = extra)) +
    geom_histogram(binwidth = 1)
    

    Resultado:

    image

    Para adicionar um título e alterar o label dos eixos x,y, é só adicionar a função labs() e seus respectivos argumentos:

    ggplot(data = df, aes(x = extra)) +
    geom_histogram(binwidth = 1) +
    labs(
        title = "Histograma da quantidade de estudantes por aumento nas horas de sono",
        subtitle = "Student's Sleep Data",
        x = "Aumento nas horas de sono",
        y = "Quantidade de Estudantes"
    )
    

    Resultado:

    image

    Para colocar os valores das distribuições no histograma, usamos a função stat_bin() e seus argumentos:

    ggplot(data = df, aes(x = extra)) +
    geom_histogram(binwidth = 1) +
    stat_bin(
            binwidth = 1,
            geom = "text",
            aes(label = after_stat(count)),
            vjust = -1
    ) +
      labs(
          title = "Histograma da quantidade de estudantes por aumento nas horas de sono",
          subtitle = "Student's Sleep Data",
          x = "Aumento nas horas de sono",
          y = "Quantidade de Estudantes"
      )
    

    Resultado:

    image

    Nessa análise, vou plotar uma linha que indica a média dessa distribuição. Para isso, utilizo a função geom_vline() , pois ela gera uma linha vertical que intercepta o eixo x:

    media_extra <- mean(df$extra)
    
    ggplot(data = sleep, aes(x = extra)) +
    geom_histogram(binwidth = 1) +
    stat_bin(
            binwidth = 1,
            geom = "text",
            aes(label = after_stat(count)),
            vjust = -1
    ) +
    geom_vline(xintercept = media_extra, color ="red", linetype = "dashed") +
    labs(
        title = "Histograma da quantidade de estudantes por aumento nas horas de sono",
        subtitle = "Student's Sleep Data",
        x = "Aumento nas horas de sono",
        y = "Quantidade de Estudantes"
    )
    

    Resultado:

    image

    Pronto! O seu histograma já está finalizado. Mas, caso você queira alterar as cores e a transparência, é preciso adicionar os seguintes argumentos na função geom_histogram() :

    • color — altera a cor do contorno das barras e aceita RGB ou o nome da cor em inglês;
    • fill — altera a cor de preenchimento das barras e aceita RGB ou o nome da cor em inglês;
    • alpha — número de 0 a 1 que altera a transparência do histograma

    Alterando a transparência:

    ggplot(data = sleep, aes(x = extra)) +
    geom_histogram(binwidth = 1, alpha = 0.5) +
    stat_bin(
            binwidth = 1,
            geom = "text",
            aes(label = after_stat(count)),
            vjust = -1
    ) +
    geom_vline(xintercept = media_extra, color ="red", linetype = "dashed") +
    labs(
        title = "Histograma da quantidade de estudantes por aumento nas horas de sono",
        subtitle = "Student's Sleep Data",
        x = "Aumento nas horas de sono",
        y = "Quantidade de Estudantes"
    )
    

    image

    Alterando as cores:

    ggplot(data = sleep, aes(x = extra)) +
    geom_histogram(binwidth = 1, fill = "white", color = "#113D63") +
    stat_bin(
            binwidth = 1,
            geom = "text",
            aes(label = after_stat(count)),
            vjust = -1
    ) +
    geom_vline(xintercept = media_extra, color ="red", linetype = "dashed") +
    labs(
        title = "Histograma da quantidade de estudantes por aumento nas horas de sono",
        subtitle = "Student's Sleep Data",
        x = "Aumento nas horas de sono",
        y = "Quantidade de Estudantes"
    )
    

    image

    Por fim, ainda é possível alterar o tema das bordas e do fundo do gráfico com as funções theme() . Você pode ler mais sobre elas e ver quais são as opções disponíveis nesse link: https://ggplot2.tidyverse.org/reference/ggtheme.html

    Compartilhe
    Recomendados para você
    Microsoft 50 Anos - Prompts Inteligentes
    Microsoft 50 Anos - GitHub Copilot
    Microsoft 50 Anos - Computação em Nuvem com Azure
    Comentários (1)

    HF

    Herald Fortunato - 18/02/2024 16:56

    Genial !!!